From 2b3529d3d89a6972afc4903f74fc5f31e6ee2c20 Mon Sep 17 00:00:00 2001 From: Yonggang Luo Date: Wed, 24 Aug 2022 04:00:04 +0800 Subject: [PATCH] mesa: Use util_call_once_data instead of mtx_t init_once_lock Signed-off-by: Yonggang Luo Reviewed-by: Jesse Natalie Part-of: --- src/mesa/main/context.c | 26 ++++---------------------- 1 file changed, 4 insertions(+), 22 deletions(-) diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c index cbdebb8..b3a32b5 100644 --- a/src/mesa/main/context.c +++ b/src/mesa/main/context.c @@ -127,6 +127,7 @@ #include "util/debug.h" #include "util/disk_cache.h" #include "util/strtod.h" +#include "util/u_call_once.h" #include "stencil.h" #include "shaderimage.h" #include "texcompress_s3tc.h" @@ -239,20 +240,6 @@ one_time_init(const char *extensions_override) } /** - * One-time initialization flag - * - * \sa Used by _mesa_initialize(). - */ -static bool init_done = false; -static mtx_t init_once_lock; -static once_flag init_once = ONCE_FLAG_INIT; - -static void init_lock(void) { - mtx_init(&init_once_lock, mtx_plain); -} - - -/** * Calls all the various one-time-init functions in Mesa. * * While holding a global mutex lock, calls several initialization functions, @@ -262,14 +249,9 @@ static void init_lock(void) { void _mesa_initialize(const char *extensions_override) { - call_once(&init_once, init_lock); - - mtx_lock(&init_once_lock); - if (!init_done) { - one_time_init(extensions_override); - init_done = true; - } - mtx_unlock(&init_once_lock); + static util_once_flag once = UTIL_ONCE_FLAG_INIT; + util_call_once_data(&once, + (util_call_once_data_func)one_time_init, extensions_override); } -- 2.7.4