about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/thread/pthread_cancel.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/thread/pthread_cancel.c b/src/thread/pthread_cancel.c
index e3d291ee..f17ce882 100644
--- a/src/thread/pthread_cancel.c
+++ b/src/thread/pthread_cancel.c
@@ -42,6 +42,7 @@ static void cancel_handler(int sig, siginfo_t *si, void *ctx)
 	const char *ip = ((char **)&uc->uc_mcontext)[CANCEL_REG_IP];
 	extern const char __cp_begin[1], __cp_end[1];
 
+	a_barrier();
 	if (!self->cancel || self->canceldisable) return;
 
 	_sigaddset(&uc->uc_sigmask, SIGCANCEL);