pthread_once -> SkOnce

one fewer sync primitive...

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2003163004

Review-Url: https://codereview.chromium.org/2003163004
This commit is contained in:
mtklein 2016-05-24 07:01:48 -07:00 committed by Commit bot
parent 5221fef17b
commit 2cb49bd7e9

View File

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