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