mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 04:30:23 +00:00
Add an erase() method to llvm::ThreadLocal.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109686 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e850e6e162
commit
826c148aa5
@ -28,6 +28,7 @@ namespace llvm {
|
||||
virtual ~ThreadLocalImpl();
|
||||
void setInstance(const void* d);
|
||||
const void* getInstance();
|
||||
void removeInstance();
|
||||
};
|
||||
|
||||
/// ThreadLocal - A class used to abstract thread-local storage. It holds,
|
||||
@ -43,6 +44,9 @@ namespace llvm {
|
||||
|
||||
// set - Associates a pointer to an object with the current thread.
|
||||
void set(T* d) { setInstance(d); }
|
||||
|
||||
// erase - Removes the pointer associated with the current thread.
|
||||
void erase() { removeInstance(); }
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -67,6 +67,10 @@ const void* ThreadLocalImpl::getInstance() {
|
||||
return pthread_getspecific(*key);
|
||||
}
|
||||
|
||||
void ThreadLocalImpl::removeInstance() {
|
||||
setInstance(0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#elif defined(LLVM_ON_UNIX)
|
||||
|
@ -22,4 +22,5 @@ ThreadLocalImpl::ThreadLocalImpl() { }
|
||||
ThreadLocalImpl::~ThreadLocalImpl() { }
|
||||
void ThreadLocalImpl::setInstance(const void* d) { data = const_cast<void*>(d);}
|
||||
const void* ThreadLocalImpl::getInstance() { return data; }
|
||||
void ThreadLocalImpl::removeInstance() { setInstance(0); }
|
||||
}
|
||||
|
@ -46,4 +46,8 @@ void ThreadLocalImpl::setInstance(const void* d){
|
||||
assert(errorcode != 0);
|
||||
}
|
||||
|
||||
void ThreadLocalImpl::removeInstance() {
|
||||
setInstance(0);
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user