about summary refs log tree commit diff
path: root/src/thread/pthread_create.c
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2015-02-16 22:25:50 -0500
committerRich Felker <dalias@aerifal.cx>2015-02-16 22:25:50 -0500
commit36d8e972231c397194e513691d09f7d489de0a62 (patch)
tree3aa144b704432d8b3a07cb69efad989735512c77 /src/thread/pthread_create.c
parentfd850de7524d8b62cd1d340417b665ed9427adae (diff)
downloadmusl-36d8e972231c397194e513691d09f7d489de0a62.tar.gz
musl-36d8e972231c397194e513691d09f7d489de0a62.tar.xz
musl-36d8e972231c397194e513691d09f7d489de0a62.zip
make pthread_exit responsible for disabling cancellation
this requirement is tucked away in XSH 2.9.5 Thread Cancellation under
the heading Thread Cancellation Cleanup Handlers.
Diffstat (limited to 'src/thread/pthread_create.c')
-rw-r--r--src/thread/pthread_create.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/thread/pthread_create.c b/src/thread/pthread_create.c
index 64971d56..b6a7a5ef 100644
--- a/src/thread/pthread_create.c
+++ b/src/thread/pthread_create.c
@@ -23,6 +23,8 @@ _Noreturn void __pthread_exit(void *result)
 	pthread_t self = __pthread_self();
 	sigset_t set;
 
+	self->canceldisable = 1;
+	self->cancelasync = 0;
 	self->result = result;
 
 	while (self->cancelbuf) {