pthread_once -> SkOnce
one fewer sync primitive...
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2003163004
Review-Url: https://codereview.chromium.org/2003163004
diff --git a/src/ports/SkTLS_pthread.cpp b/src/ports/SkTLS_pthread.cpp
index ac558a8..445d76d 100644
--- a/src/ports/SkTLS_pthread.cpp
+++ b/src/ports/SkTLS_pthread.cpp
@@ -6,22 +6,17 @@
*/
#include "SkTLS.h"
+#include "SkOnce.h"
#include <pthread.h>
static pthread_key_t gSkTLSKey;
-static pthread_once_t gSkTLSKey_Once = PTHREAD_ONCE_INIT;
-
-static void sk_tls_make_key() {
- (void)pthread_key_create(&gSkTLSKey, SkTLS::Destructor);
-}
void* SkTLS::PlatformGetSpecific(bool forceCreateTheSlot) {
- // should we use forceCreateTheSlot to potentially skip calling pthread_once
- // and just return nullptr if we've never been called with
- // forceCreateTheSlot==true ?
-
- (void)pthread_once(&gSkTLSKey_Once, sk_tls_make_key);
+ // should we use forceCreateTheSlot to potentially just return nullptr if
+ // we've never been called with forceCreateTheSlot==true ?
+ static SkOnce once;
+ once(pthread_key_create, &gSkTLSKey, SkTLS::Destructor);
return pthread_getspecific(gSkTLSKey);
}