Explorar el Código

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.
Rich Felker hace 10 años
padre
commit
36d8e97223
Se han modificado 2 ficheros con 2 adiciones y 3 borrados
  1. 0 3
      src/thread/pthread_cancel.c
  2. 2 0
      src/thread/pthread_create.c

+ 0 - 3
src/thread/pthread_cancel.c

@@ -3,9 +3,6 @@
 
 void __cancel()
 {
-	pthread_t self = __pthread_self();
-	self->canceldisable = 1;
-	self->cancelasync = 0;
 	pthread_exit(PTHREAD_CANCELED);
 }
 

+ 2 - 0
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) {