Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / support / time.c
index 8d3d1a9a2262db1a8aa41e65bad59edbffe45598..05ceb4ccca8993499f36a83a9ef80c81c7b187a5 100644 (file)
 
 G_BEGIN_DECLS
 
+#if defined(HAVE_STRUCT_TIMESPEC) && _POSIX_C_SOURCE >= 199309L
+int
+Mono_Posix_Syscall_nanosleep (struct Mono_Posix_Timespec *req,
+               struct Mono_Posix_Timespec *rem)
+{
+       struct timespec _req, _rem, *prem = NULL;
+       int r;
+
+       if (req == NULL) {
+               errno = EFAULT;
+               return -1;
+       }
+
+       if (Mono_Posix_FromTimespec (req, &_req) == -1)
+               return -1;
+
+       if (rem) {
+               if (Mono_Posix_FromTimespec (rem, &_rem) == -1)
+                       return -1;
+               prem = &_rem;
+       }
+
+       r = nanosleep (&_req, prem);
+
+       if (rem && Mono_Posix_ToTimespec (prem, rem) == -1)
+               return -1;
+
+       return r;
+}
+#endif
+
 #ifdef HAVE_STIME
 gint32
 Mono_Posix_Syscall_stime (mph_time_t *t)