diff options
Diffstat (limited to 'Source/WTF/wtf/ThreadIdentifierDataPthreads.cpp')
-rw-r--r-- | Source/WTF/wtf/ThreadIdentifierDataPthreads.cpp | 7 |
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)); } |