Index: fusl/src/time/timer_delete.c |
diff --git a/fusl/src/time/timer_delete.c b/fusl/src/time/timer_delete.c |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7c97eeb1a1d8340fd07f9f045f1964680a18697d |
--- /dev/null |
+++ b/fusl/src/time/timer_delete.c |
@@ -0,0 +1,14 @@ |
+#include <time.h> |
+#include <limits.h> |
+#include "pthread_impl.h" |
+ |
+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); |
+ return 0; |
+ } |
+ return __syscall(SYS_timer_delete, t); |
+} |