X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FSystem%2FThreadLocal.cpp;h=f6a55a1c0b9b183b1fbccc7976e52bf95406abbc;hb=e5f77cda25169fcbadc32f0f0b3da2e00ba86b7c;hp=8884e79714b7cf56de5e40e50bc2b78de5d327f2;hpb=6f8f6066fdeafc75277a73c55cc9b0832d845d0e;p=oota-llvm.git diff --git a/lib/System/ThreadLocal.cpp b/lib/System/ThreadLocal.cpp index 8884e79714b..f6a55a1c0b9 100644 --- a/lib/System/ThreadLocal.cpp +++ b/lib/System/ThreadLocal.cpp @@ -27,6 +27,7 @@ ThreadLocalImpl::ThreadLocalImpl() { } ThreadLocalImpl::~ThreadLocalImpl() { } void ThreadLocalImpl::setInstance(const void* d) { data = const_cast(d);} const void* ThreadLocalImpl::getInstance() { return data; } +void ThreadLocalImpl::removeInstance() { data = 0; } } #else @@ -44,7 +45,7 @@ ThreadLocalImpl::ThreadLocalImpl() : data(0) { int errorcode = pthread_key_create(key, NULL); assert(errorcode == 0); (void) errorcode; - data = key; + data = (void*)key; } ThreadLocalImpl::~ThreadLocalImpl() { @@ -67,6 +68,10 @@ const void* ThreadLocalImpl::getInstance() { return pthread_getspecific(*key); } +void ThreadLocalImpl::removeInstance() { + setInstance(0); +} + } #elif defined(LLVM_ON_UNIX)