overhaul pthread cancellation
[musl] / arch / i386 / bits / pthread.h
index 7690ea3..c119dc8 100644 (file)
@@ -7,17 +7,17 @@ struct __ptcb {
 
 static inline void __pthread_register_cancel_2(struct __ptcb *__cb)
 {
-       __asm__ __volatile__( "call __pthread_register_cancel" : : "a"(__cb) );
+       __asm__ __volatile__( "call __pthread_register_cancel" : : "a"(__cb) : "ecx", "edx", "memory" );
 }
 
 static inline void __pthread_unregister_cancel_2(struct __ptcb *__cb)
 {
-       __asm__ __volatile__( "call __pthread_unregister_cancel" : : "a"(__cb) );
+       __asm__ __volatile__( "call __pthread_unregister_cancel" : : "a"(__cb) : "ecx", "edx", "memory" );
 }
 
 static inline void __pthread_unwind_next_2(struct __ptcb *__cb)
 {
-       __asm__ __volatile__( "call __pthread_unwind_next" : : "a"(__cb) );
+       __asm__ __volatile__( "call __pthread_unwind_next" : : "a"(__cb) : "ecx", "edx", "memory" );
 }
 
 #define __pthread_register_cancel __pthread_register_cancel_2