Remove OSDependent TLS functions
These are no longer used now that the PoolAllocator uses the standard c++11 thread_local storage mechanism.
This commit is contained in:
parent
a0010e27ba
commit
4420f9b33b
@ -52,76 +52,6 @@
|
|||||||
|
|
||||||
namespace glslang {
|
namespace glslang {
|
||||||
|
|
||||||
//
|
|
||||||
// Thread cleanup
|
|
||||||
//
|
|
||||||
|
|
||||||
//
|
|
||||||
// Thread Local Storage Operations
|
|
||||||
//
|
|
||||||
inline OS_TLSIndex PthreadKeyToTLSIndex(pthread_key_t key)
|
|
||||||
{
|
|
||||||
return (OS_TLSIndex)((uintptr_t)key + 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline pthread_key_t TLSIndexToPthreadKey(OS_TLSIndex nIndex)
|
|
||||||
{
|
|
||||||
return (pthread_key_t)((uintptr_t)nIndex - 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
OS_TLSIndex OS_AllocTLSIndex()
|
|
||||||
{
|
|
||||||
pthread_key_t pPoolIndex;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Create global pool key.
|
|
||||||
//
|
|
||||||
if ((pthread_key_create(&pPoolIndex, nullptr)) != 0) {
|
|
||||||
assert(0 && "OS_AllocTLSIndex(): Unable to allocate Thread Local Storage");
|
|
||||||
return OS_INVALID_TLS_INDEX;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
return PthreadKeyToTLSIndex(pPoolIndex);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool OS_SetTLSValue(OS_TLSIndex nIndex, void *lpvValue)
|
|
||||||
{
|
|
||||||
if (nIndex == OS_INVALID_TLS_INDEX) {
|
|
||||||
assert(0 && "OS_SetTLSValue(): Invalid TLS Index");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pthread_setspecific(TLSIndexToPthreadKey(nIndex), lpvValue) == 0)
|
|
||||||
return true;
|
|
||||||
else
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void* OS_GetTLSValue(OS_TLSIndex nIndex)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
// This function should return 0 if nIndex is invalid.
|
|
||||||
//
|
|
||||||
assert(nIndex != OS_INVALID_TLS_INDEX);
|
|
||||||
return pthread_getspecific(TLSIndexToPthreadKey(nIndex));
|
|
||||||
}
|
|
||||||
|
|
||||||
bool OS_FreeTLSIndex(OS_TLSIndex nIndex)
|
|
||||||
{
|
|
||||||
if (nIndex == OS_INVALID_TLS_INDEX) {
|
|
||||||
assert(0 && "OS_SetTLSValue(): Invalid TLS Index");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Delete the global pool key.
|
|
||||||
//
|
|
||||||
if (pthread_key_delete(TLSIndexToPthreadKey(nIndex)) == 0)
|
|
||||||
return true;
|
|
||||||
else
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
pthread_mutex_t gMutex;
|
pthread_mutex_t gMutex;
|
||||||
}
|
}
|
||||||
|
@ -53,62 +53,6 @@
|
|||||||
|
|
||||||
namespace glslang {
|
namespace glslang {
|
||||||
|
|
||||||
inline OS_TLSIndex ToGenericTLSIndex (DWORD handle)
|
|
||||||
{
|
|
||||||
return (OS_TLSIndex)((uintptr_t)handle + 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline DWORD ToNativeTLSIndex (OS_TLSIndex nIndex)
|
|
||||||
{
|
|
||||||
return (DWORD)((uintptr_t)nIndex - 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Thread Local Storage Operations
|
|
||||||
//
|
|
||||||
OS_TLSIndex OS_AllocTLSIndex()
|
|
||||||
{
|
|
||||||
DWORD dwIndex = TlsAlloc();
|
|
||||||
if (dwIndex == TLS_OUT_OF_INDEXES) {
|
|
||||||
assert(0 && "OS_AllocTLSIndex(): Unable to allocate Thread Local Storage");
|
|
||||||
return OS_INVALID_TLS_INDEX;
|
|
||||||
}
|
|
||||||
|
|
||||||
return ToGenericTLSIndex(dwIndex);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool OS_SetTLSValue(OS_TLSIndex nIndex, void *lpvValue)
|
|
||||||
{
|
|
||||||
if (nIndex == OS_INVALID_TLS_INDEX) {
|
|
||||||
assert(0 && "OS_SetTLSValue(): Invalid TLS Index");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (TlsSetValue(ToNativeTLSIndex(nIndex), lpvValue))
|
|
||||||
return true;
|
|
||||||
else
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void* OS_GetTLSValue(OS_TLSIndex nIndex)
|
|
||||||
{
|
|
||||||
assert(nIndex != OS_INVALID_TLS_INDEX);
|
|
||||||
return TlsGetValue(ToNativeTLSIndex(nIndex));
|
|
||||||
}
|
|
||||||
|
|
||||||
bool OS_FreeTLSIndex(OS_TLSIndex nIndex)
|
|
||||||
{
|
|
||||||
if (nIndex == OS_INVALID_TLS_INDEX) {
|
|
||||||
assert(0 && "OS_SetTLSValue(): Invalid TLS Index");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (TlsFree(ToNativeTLSIndex(nIndex)))
|
|
||||||
return true;
|
|
||||||
else
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
HANDLE GlobalLock;
|
HANDLE GlobalLock;
|
||||||
|
|
||||||
void InitGlobalLock()
|
void InitGlobalLock()
|
||||||
|
@ -37,17 +37,6 @@
|
|||||||
|
|
||||||
namespace glslang {
|
namespace glslang {
|
||||||
|
|
||||||
//
|
|
||||||
// Thread Local Storage Operations
|
|
||||||
//
|
|
||||||
typedef void* OS_TLSIndex;
|
|
||||||
#define OS_INVALID_TLS_INDEX nullptr
|
|
||||||
|
|
||||||
OS_TLSIndex OS_AllocTLSIndex();
|
|
||||||
bool OS_SetTLSValue(OS_TLSIndex nIndex, void *lpvValue);
|
|
||||||
bool OS_FreeTLSIndex(OS_TLSIndex nIndex);
|
|
||||||
void* OS_GetTLSValue(OS_TLSIndex nIndex);
|
|
||||||
|
|
||||||
void InitGlobalLock();
|
void InitGlobalLock();
|
||||||
void GetGlobalLock();
|
void GetGlobalLock();
|
||||||
void ReleaseGlobalLock();
|
void ReleaseGlobalLock();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user