1 /*
2  * Copyright 2013 Google Inc.
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7 
8 #include "SkTLS.h"
9 #include "SkOnce.h"
10 
11 #include <pthread.h>
12 
13 static pthread_key_t gSkTLSKey;
14 
PlatformGetSpecific(bool forceCreateTheSlot)15 void* SkTLS::PlatformGetSpecific(bool forceCreateTheSlot) {
16     // should we use forceCreateTheSlot to potentially just return nullptr if
17     // we've never been called with forceCreateTheSlot==true ?
18     static SkOnce once;
19     once(pthread_key_create, &gSkTLSKey, SkTLS::Destructor);
20     return pthread_getspecific(gSkTLSKey);
21 }
22 
PlatformSetSpecific(void * ptr)23 void SkTLS::PlatformSetSpecific(void* ptr) {
24     (void)pthread_setspecific(gSkTLSKey, ptr);
25 }
26