Ignore:
Timestamp:
Jul 20, 2011, 10:04:49 PM (14 years ago)
Author:
[email protected]
Message:

Unreviewed, rolling out r91380.
http://trac.webkit.org/changeset/91380
https://bugs.webkit.org/show_bug.cgi?id=64924

Caused assertion failures in Chromium's IndexedDB tests
(Requested by rniwa on #webkit).

Patch by Sheriff Bot <[email protected]> on 2011-07-20

  • wtf/ThreadIdentifierDataPthreads.cpp:

(WTF::ThreadIdentifierData::identifier):
(WTF::ThreadIdentifierData::initialize):
(WTF::ThreadIdentifierData::initializeKeyOnceHelper):
(WTF::ThreadIdentifierData::initializeKeyOnce):

  • wtf/ThreadIdentifierDataPthreads.h:
  • wtf/ThreadingPthreads.cpp:

(WTF::initializeThreading):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/wtf/ThreadIdentifierDataPthreads.cpp

    r91380 r91444  
    3737#include "Threading.h"
    3838
    39 #include <limits.h>
    40 
    4139namespace WTF {
    4240
    43 pthread_key_t ThreadIdentifierData::m_key = PTHREAD_KEYS_MAX;
     41pthread_key_t ThreadIdentifierData::m_key;
     42static pthread_once_t onceControl = PTHREAD_ONCE_INIT;
    4443
    4544void clearPthreadHandleForIdentifier(ThreadIdentifier);
     
    5049}
    5150
    52 void ThreadIdentifierData::initializeOnce()
    53 {
    54     if (pthread_key_create(&m_key, destruct))
    55         CRASH();
    56 }
    57 
    5851ThreadIdentifier ThreadIdentifierData::identifier()
    5952{
    60     ASSERT(m_key != PTHREAD_KEYS_MAX);
     53    initializeKeyOnce();
    6154    ThreadIdentifierData* threadIdentifierData = static_cast<ThreadIdentifierData*>(pthread_getspecific(m_key));
    6255
     
    6760{
    6861    ASSERT(!identifier());
     62
     63    initializeKeyOnce();
    6964    pthread_setspecific(m_key, new ThreadIdentifierData(id));
    7065}
     
    8580}
    8681
     82void ThreadIdentifierData::initializeKeyOnceHelper()
     83{
     84    if (pthread_key_create(&m_key, destruct))
     85        CRASH();
     86}
     87
     88void ThreadIdentifierData::initializeKeyOnce()
     89{
     90    if (pthread_once(&onceControl, initializeKeyOnceHelper))
     91        CRASH();
     92}
     93
    8794} // namespace WTF
    8895
Note: See TracChangeset for help on using the changeset viewer.