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