Separate Simple Backend creation from initialization.
[chromium-blink-merge.git] / base / threading / thread_local_posix.cc
blob49510064e75bd451ceaf44842899950fafefebfc
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "base/threading/thread_local.h"
7 #include <pthread.h>
9 #include "base/logging.h"
11 namespace base {
13 namespace internal {
15 // static
16 void ThreadLocalPlatform::AllocateSlot(SlotType& slot) {
17 int error = pthread_key_create(&slot, NULL);
18 CHECK_EQ(error, 0);
21 // static
22 void ThreadLocalPlatform::FreeSlot(SlotType& slot) {
23 int error = pthread_key_delete(slot);
24 DCHECK_EQ(0, error);
27 // static
28 void* ThreadLocalPlatform::GetValueFromSlot(SlotType& slot) {
29 return pthread_getspecific(slot);
32 // static
33 void ThreadLocalPlatform::SetValueInSlot(SlotType& slot, void* value) {
34 int error = pthread_setspecific(slot, value);
35 DCHECK_EQ(error, 0);
38 } // namespace internal
40 } // namespace base