Skip to content
Snippets Groups Projects

Vlcjs/incoming.1

Open Mehdi Sabwat requested to merge vlcjs/incoming.1 into master
45 files
+ 1711
273
Compare changes
  • Side-by-side
  • Inline
Files
45
+ 70
0
@@ -92,5 +92,75 @@ int clock_nanosleep(clockid_t clock_id, int flags,
return -1;
}
}
#elif defined (__EMSCRIPTEN__)
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include <assert.h>
#include <errno.h>
#include <time.h>
// #include <sysdep-cancel.h>
/* This implementation assumes that these is only a `nanosleep' system
call. So we have to remap all other activities. */
int
//__clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req,
// struct timespec *rem)
clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req,
struct timespec *rem)
{
struct timespec now;
if (__builtin_expect (req->tv_nsec, 0) < 0
|| __builtin_expect (req->tv_nsec, 0) >= 1000000000)
return EINVAL;
if (clock_id == CLOCK_THREAD_CPUTIME_ID)
return EINVAL; /* POSIX specifies EINVAL for this case. */
if (clock_id < CLOCK_REALTIME || clock_id > CLOCK_THREAD_CPUTIME_ID)
return EINVAL;
/* If we got an absolute time, remap it. */
if (flags == TIMER_ABSTIME)
{
long int nsec;
long int sec;
/* Make sure we use safe data types. */
assert (sizeof (sec) >= sizeof (now.tv_sec));
/* Get the current time for this clock. */
//if (__clock_gettime (clock_id, &now) != 0)
if (clock_gettime (clock_id, &now) != 0)
return errno;
/* Compute the difference. */
nsec = req->tv_nsec - now.tv_nsec;
sec = req->tv_sec - now.tv_sec - (nsec < 0);
if (sec < 0)
/* The time has already elapsed. */
return 0;
now.tv_sec = sec;
now.tv_nsec = nsec + (nsec < 0 ? 1000000000 : 0);
/* From now on this is our time. */
req = &now;
/* Make sure we are not modifying the struct pointed to by REM. */
rem = NULL;
}
else if (flags != 0)
return EINVAL;
else if (clock_id != CLOCK_REALTIME)
/* Not supported. */
return ENOTSUP;
// return __nanosleep (req, rem), 0 ? errno : 0;
return nanosleep (req, rem), 0 ? errno : 0;
}
//weak_alias (__clock_nanosleep, clock_nanosleep)
#endif
Loading