| Index: src/ports/SkTLS_pthread.cpp
|
| diff --git a/src/ports/SkTLS_pthread.cpp b/src/ports/SkTLS_pthread.cpp
|
| index ac558a81965bedfb7a22a6bac8d001181c9eb1b4..445d76d13a6b923b5495326382651576eb032b8e 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);
|
| }
|
|
|
|
|