don't use pthread_once when there is no danger in race

This commit is contained in:
Rich Felker 2011-04-17 12:15:55 -04:00
parent e74664016b
commit 02eff258c6
1 changed files with 5 additions and 2 deletions

View File

@ -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);
}