summaryrefslogtreecommitdiff
path: root/Source/WTF/wtf/ThreadIdentifierDataPthreads.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WTF/wtf/ThreadIdentifierDataPthreads.cpp')
-rw-r--r--Source/WTF/wtf/ThreadIdentifierDataPthreads.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/Source/WTF/wtf/ThreadIdentifierDataPthreads.cpp b/Source/WTF/wtf/ThreadIdentifierDataPthreads.cpp
index bd62288f8..0bebfe93b 100644
--- a/Source/WTF/wtf/ThreadIdentifierDataPthreads.cpp
+++ b/Source/WTF/wtf/ThreadIdentifierDataPthreads.cpp
@@ -56,7 +56,8 @@ ThreadIdentifierData::~ThreadIdentifierData()
void ThreadIdentifierData::initializeOnce()
{
- if (pthread_key_create(&m_key, destruct))
+ int error = pthread_key_create(&m_key, destruct);
+ if (error)
CRASH();
}
@@ -71,6 +72,10 @@ ThreadIdentifier ThreadIdentifierData::identifier()
void ThreadIdentifierData::initialize(ThreadIdentifier id)
{
ASSERT(!identifier());
+ // Ideally we'd have this as a release assert everywhere, but that would hurt performane.
+ // Having this release assert here means that we will catch "didn't call
+ // WTF::initializeThreading() soon enough" bugs in release mode.
+ RELEASE_ASSERT(m_key != PTHREAD_KEYS_MAX);
pthread_setspecific(m_key, new ThreadIdentifierData(id));
}