use a_store to set cancel flag in pthread_cancel, to ensure a barrier
[musl] / src / thread / pthread_cancel.c
index 1ff00ad..c497dbe 100644 (file)
@@ -2,6 +2,6 @@
 
 int pthread_cancel(pthread_t t)
 {
-       t->cancel = 1;
+       a_store(&t->cancel, 1);
        return pthread_kill(t, SIGCANCEL);
 }