diff options
author | Michael J. Spencer <bigcheesegs@gmail.com> | 2010-11-29 18:16:10 +0000 |
---|---|---|
committer | Michael J. Spencer <bigcheesegs@gmail.com> | 2010-11-29 18:16:10 +0000 |
commit | 1f6efa3996dd1929fbc129203ce5009b620e6969 (patch) | |
tree | 6b782914982f90d3a983bcefef98b8ef68ab2961 /lib/System/Win32/ThreadLocal.inc | |
parent | 9363f739cdc3bd02e8516a25de0090f52ae12fbb (diff) |
Merge System into Support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120298 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/System/Win32/ThreadLocal.inc')
-rw-r--r-- | lib/System/Win32/ThreadLocal.inc | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/lib/System/Win32/ThreadLocal.inc b/lib/System/Win32/ThreadLocal.inc deleted file mode 100644 index e7e3cb7ce1..0000000000 --- a/lib/System/Win32/ThreadLocal.inc +++ /dev/null @@ -1,54 +0,0 @@ -//= llvm/System/Win32/ThreadLocal.inc - Win32 Thread Local Data -*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// This file implements the Win32 specific (non-pthread) ThreadLocal class. -// -//===----------------------------------------------------------------------===// - -//===----------------------------------------------------------------------===// -//=== WARNING: Implementation here must contain only generic Win32 code that -//=== is guaranteed to work on *all* Win32 variants. -//===----------------------------------------------------------------------===// - -#include "Win32.h" -#include "llvm/System/ThreadLocal.h" - -namespace llvm { -using namespace sys; - -ThreadLocalImpl::ThreadLocalImpl() { - DWORD* tls = new DWORD; - *tls = TlsAlloc(); - assert(*tls != TLS_OUT_OF_INDEXES); - data = tls; -} - -ThreadLocalImpl::~ThreadLocalImpl() { - DWORD* tls = static_cast<DWORD*>(data); - TlsFree(*tls); - delete tls; -} - -const void* ThreadLocalImpl::getInstance() { - DWORD* tls = static_cast<DWORD*>(data); - return TlsGetValue(*tls); -} - -void ThreadLocalImpl::setInstance(const void* d){ - DWORD* tls = static_cast<DWORD*>(data); - int errorcode = TlsSetValue(*tls, const_cast<void*>(d)); - assert(errorcode != 0); - (void)errorcode; -} - -void ThreadLocalImpl::removeInstance() { - setInstance(0); -} - -} |