1// Copyright 2014 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. 4 5#include "mojo/public/cpp/utility/lib/thread_local.h" 6 7#include <assert.h> 8#include <windows.h> 9 10namespace mojo { 11namespace internal { 12 13// static 14void ThreadLocalPlatform::AllocateSlot(SlotType* slot) { 15 *slot = TlsAlloc(); 16 assert(*slot != TLS_OUT_OF_INDEXES); 17} 18 19// static 20void ThreadLocalPlatform::FreeSlot(SlotType slot) { 21 if (!TlsFree(slot)) { 22 assert(false); 23 } 24} 25 26// static 27void* ThreadLocalPlatform::GetValueFromSlot(SlotType slot) { 28 return TlsGetValue(slot); 29} 30 31// static 32void ThreadLocalPlatform::SetValueInSlot(SlotType slot, void* value) { 33 if (!TlsSetValue(slot, value)) { 34 assert(false); 35 } 36} 37 38} // namespace internal 39} // namespace mojo 40