avoid all malloc/free in timer creation/destruction
[musl] / src / time / timer_settime.c
index d109570..00708f0 100644 (file)
@@ -3,5 +3,7 @@
 
 int timer_settime(timer_t t, int flags, const struct itimerspec *val, struct itimerspec *old)
 {
-       return syscall(SYS_timer_settime, t->timerid, flags, val, old);
+       if ((uintptr_t)t & 1) t = (void *)((unsigned long)t / 2);
+       else t = ((pthread_t)t)->result;
+       return syscall(SYS_timer_settime, (long)t, flags, val, old);
 }