diff options
Diffstat (limited to 'mesalib/src/mapi/stub.c')
-rw-r--r-- | mesalib/src/mapi/stub.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/mesalib/src/mapi/stub.c b/mesalib/src/mapi/stub.c index dfadbe1a5..05436bab6 100644 --- a/mesalib/src/mapi/stub.c +++ b/mesalib/src/mapi/stub.c @@ -28,14 +28,14 @@ #include <stdlib.h> #include <string.h> #include <assert.h> +#include "c11/threads.h" +#include "util/macros.h" #include "u_current.h" -#include "u_thread.h" #include "entry.h" #include "stub.h" #include "table.h" -#define ARRAY_SIZE(x) (sizeof(x)/sizeof((x)[0])) struct mapi_stub { const void *name; @@ -54,16 +54,8 @@ static int next_dynamic_slot = MAPI_TABLE_NUM_STATIC; void stub_init_once(void) { -#ifdef HAVE_PTHREAD - static pthread_once_t once = PTHREAD_ONCE_INIT; - pthread_once(&once, entry_patch_public); -#else - static int first = 1; - if (first) { - first = 0; - entry_patch_public(); - } -#endif + static once_flag flag = ONCE_FLAG_INIT; + call_once(&flag, entry_patch_public); } static int |