diff options
| -rw-r--r-- | src/thread/cancel_impl.c | 7 | 
1 files changed, 5 insertions, 2 deletions
| diff --git a/src/thread/cancel_impl.c b/src/thread/cancel_impl.c index 28dc84dc..7bcfaef5 100644 --- a/src/thread/cancel_impl.c +++ b/src/thread/cancel_impl.c @@ -71,8 +71,11 @@ static void init_cancellation()  int pthread_cancel(pthread_t t)  { -	static pthread_once_t once; -	pthread_once(&once, init_cancellation); +	static int init; +	if (!init) { +		init_cancellation(); +		init = 1; +	}  	a_store(&t->cancel, 1);  	return pthread_kill(t, SIGCANCEL);  } | 
