avoid all malloc/free in timer creation/destruction
[oweals/musl.git] / src / time / timer_settime.c
index d109570b3fe660cf193b8b6ae4e180714f391164..00708f0e47a6d90a1c50094beeb0c1f965b407ad 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);
 }