for SIGEV_THREAD timer threads, replace signal handler with sigwaitinfo
[musl] / src / time / timer_delete.c
index 7c97eeb..b0bfac0 100644 (file)
@@ -7,7 +7,7 @@ int timer_delete(timer_t t)
        if ((intptr_t)t < 0) {
                pthread_t td = (void *)((uintptr_t)t << 1);
                a_store(&td->timer_id, td->timer_id | INT_MIN);
-               __wake(&td->timer_id, 1, 1);
+               __syscall(SYS_tkill, td->tid, SIGTIMER);
                return 0;
        }
        return __syscall(SYS_timer_delete, t);