Changeset 58179 in webkit


Ignore:
Timestamp:
Apr 23, 2010 11:59:56 AM (14 years ago)
Author:
weinig@apple.com
Message:

Fix for https://bugs.webkit.org/show_bug.cgi?id=38022
Move isMainThread predicate function to MainThread.h

Reviewed by Anders Carlsson.

JavaScriptCore:

  • wtf/MainThread.cpp:

(WTF::initializeMainThread):
(WTF::isMainThread):

  • wtf/MainThread.h:
  • wtf/Threading.h:
  • wtf/ThreadingPthreads.cpp:

(WTF::initializeThreading):

  • wtf/ThreadingWin.cpp:

(WTF::initializeThreading):

  • wtf/gtk/ThreadingGtk.cpp:

(WTF::initializeThreading):

  • wtf/mac/MainThreadMac.mm:

(WTF::initializeMainThreadPlatform):
(WTF::isMainThread):

  • wtf/qt/MainThreadQt.cpp:

(WTF::isMainThread):

  • wtf/qt/ThreadingQt.cpp:

(WTF::initializeThreading):

  • wtf/text/AtomicString.cpp:

JavaScriptGlue:

Added forwarding header for MainThread.h

  • ForwardingHeaders/wtf/MainThread.h: Added.

WebKitTools:

Added forwarding header for MainThread.h

  • DumpRenderTree/ForwardingHeaders/wtf/MainThread.h: Added.
Location:
trunk
Files:
2 added
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/ChangeLog

    r58167 r58179  
     12010-04-22  Sam Weinig  <sam@webkit.org>
     2
     3        Reviewed by Anders Carlsson.
     4
     5        Fix for https://bugs.webkit.org/show_bug.cgi?id=38022
     6        Move isMainThread predicate function to MainThread.h
     7
     8        * wtf/MainThread.cpp:
     9        (WTF::initializeMainThread):
     10        (WTF::isMainThread):
     11        * wtf/MainThread.h:
     12        * wtf/Threading.h:
     13        * wtf/ThreadingPthreads.cpp:
     14        (WTF::initializeThreading):
     15        * wtf/ThreadingWin.cpp:
     16        (WTF::initializeThreading):
     17        * wtf/gtk/ThreadingGtk.cpp:
     18        (WTF::initializeThreading):
     19        * wtf/mac/MainThreadMac.mm:
     20        (WTF::initializeMainThreadPlatform):
     21        (WTF::isMainThread):
     22        * wtf/qt/MainThreadQt.cpp:
     23        (WTF::isMainThread):
     24        * wtf/qt/ThreadingQt.cpp:
     25        (WTF::initializeThreading):
     26        * wtf/text/AtomicString.cpp:
     27
    1282010-04-23  Gabor Rapcsanyi  <rgabor@inf.u-szeged.hu>
    229
  • trunk/JavaScriptCore/wtf/MainThread.cpp

    r51222 r58179  
    3737namespace WTF {
    3838
     39#if !PLATFORM(MAC) && !PLATFORM(QT)
     40static ThreadIdentifier mainThreadIdentifier;
     41#endif
     42
    3943struct FunctionWithContext {
    4044    MainThreadFunction* function;
     
    7074    mainThreadFunctionQueueMutex();
    7175    initializeMainThreadPlatform();
     76
     77#if !PLATFORM(MAC) && !PLATFORM(QT)
     78    mainThreadIdentifier = currentThread();
     79#endif
    7280}
    7381
     
    153161}
    154162
     163#if !PLATFORM(MAC) && !PLATFORM(QT)
     164bool isMainThread()
     165{
     166    return currentThread() == mainThreadIdentifier;
     167}
     168#endif
     169
    155170} // namespace WTF
  • trunk/JavaScriptCore/wtf/MainThread.h

    r51222 r58179  
    5353void dispatchFunctionsFromMainThread();
    5454
     55bool isMainThread();
     56
    5557} // namespace WTF
    5658
     
    5860using WTF::callOnMainThreadAndWait;
    5961using WTF::setMainThreadCallbacksPaused;
     62using WTF::isMainThread;
    6063
    6164#endif // MainThread_h
  • trunk/JavaScriptCore/wtf/Threading.h

    r56712 r58179  
    6868#include <wtf/Assertions.h>
    6969#include <wtf/Locker.h>
     70#include <wtf/MainThread.h>
    7071#include <wtf/Noncopyable.h>
    7172
     
    125126
    126127ThreadIdentifier currentThread();
    127 bool isMainThread();
    128128int waitForThreadCompletion(ThreadIdentifier, void**);
    129129void detachThread(ThreadIdentifier);
     
    344344using WTF::createThread;
    345345using WTF::currentThread;
    346 using WTF::isMainThread;
    347346using WTF::detachThread;
    348347using WTF::waitForThreadCompletion;
  • trunk/JavaScriptCore/wtf/ThreadingPthreads.cpp

    r55429 r58179  
    5858static Mutex* atomicallyInitializedStaticMutex;
    5959
    60 #if !OS(DARWIN) || PLATFORM(CHROMIUM) || USE(WEB_THREAD)
    61 static pthread_t mainThread; // The thread that was the first to call initializeThreading(), which must be the main thread.
    62 #endif
    63 
    6460void clearPthreadHandleForIdentifier(ThreadIdentifier);
    6561
     
    7672        threadMapMutex();
    7773        initializeRandomNumberGenerator();
    78 #if !OS(DARWIN) || PLATFORM(CHROMIUM) || USE(WEB_THREAD)
    79         mainThread = pthread_self();
    80 #endif
    8174        initializeMainThread();
    8275    }
     
    241234}
    242235
    243 bool isMainThread()
    244 {
    245 #if OS(DARWIN) && !PLATFORM(CHROMIUM) && !USE(WEB_THREAD)
    246     return pthread_main_np();
    247 #else
    248     return pthread_equal(pthread_self(), mainThread);
    249 #endif
    250 }
    251 
    252236Mutex::Mutex()
    253237{
  • trunk/JavaScriptCore/wtf/ThreadingWin.cpp

    r55429 r58179  
    146146}
    147147
    148 static ThreadIdentifier mainThreadIdentifier;
    149148
    150149static Mutex& threadMapMutex()
     
    161160        initializeRandomNumberGenerator();
    162161        initializeMainThread();
    163         mainThreadIdentifier = currentThread();
    164162        initializeCurrentThreadInternal("Main Thread");
    165163    }
     
    274272{
    275273    return static_cast<ThreadIdentifier>(GetCurrentThreadId());
    276 }
    277 
    278 bool isMainThread()
    279 {
    280     return currentThread() == mainThreadIdentifier;
    281274}
    282275
  • trunk/JavaScriptCore/wtf/gtk/ThreadingGtk.cpp

    r53714 r58179  
    4545static Mutex* atomicallyInitializedStaticMutex;
    4646
    47 static ThreadIdentifier mainThreadIdentifier;
    48 
    4947static Mutex& threadMapMutex()
    5048{
     
    6361        threadMapMutex();
    6462        initializeRandomNumberGenerator();
    65         mainThreadIdentifier = currentThread();
    6663        initializeMainThread();
    6764    }
     
    167164        return id;
    168165    return establishIdentifierForThread(currentThread);
    169 }
    170 
    171 bool isMainThread()
    172 {
    173     return currentThread() == mainThreadIdentifier;
    174166}
    175167
  • trunk/JavaScriptCore/wtf/mac/MainThreadMac.mm

    r55817 r58179  
    5353static WTFMainThreadCaller* staticMainThreadCaller = nil;
    5454#if USE(WEB_THREAD)
     55static pthread_t mainThread;
    5556static NSThread* webThread = nil;
    5657#endif
     
    6263
    6364#if USE(WEB_THREAD)
     65    mainThread = pthread_self();
    6466    webThread = [[NSThread currentThread] retain];
    6567#endif
     
    103105}
    104106
     107bool isMainThread()
     108{
     109#if USE(WEB_THREAD)
     110    return pthread_equal(pthread_self(), mainThread);
     111#else
     112    return pthread_main_np();
     113#endif
     114}
     115
    105116} // namespace WTF
  • trunk/JavaScriptCore/wtf/qt/MainThreadQt.cpp

    r40888 r58179  
    3535#include <QtCore/QCoreApplication>
    3636
    37 
    3837namespace WTF {
    3938
     
    6867}
    6968
     69bool isMainThread()
     70{
     71    return QThread::currentThread() == QCoreApplication::instance()->thread();
     72}
     73
    7074} // namespace WTF
    7175
  • trunk/JavaScriptCore/wtf/qt/ThreadingQt.cpp

    r53714 r58179  
    8585static Mutex* atomicallyInitializedStaticMutex;
    8686
    87 static ThreadIdentifier mainThreadIdentifier;
    88 
    8987static Mutex& threadMapMutex()
    9088{
     
    147145        threadMapMutex();
    148146        initializeRandomNumberGenerator();
    149         QThread* mainThread = QCoreApplication::instance()->thread();
    150         mainThreadIdentifier = identifierByQthreadHandle(mainThread);
    151         if (!mainThreadIdentifier)
    152             mainThreadIdentifier = establishIdentifierForThread(mainThread);
    153147        initializeMainThread();
    154148    }
     
    216210}
    217211
    218 bool isMainThread()
    219 {
    220     return QThread::currentThread() == QCoreApplication::instance()->thread();
    221 }
    222 
    223212Mutex::Mutex()
    224213    : m_mutex(new QMutex())
  • trunk/JavaScriptCore/wtf/text/AtomicString.cpp

    r58114 r58179  
    2929#include "StaticConstructors.h"
    3030#include "StringHash.h"
     31#include <wtf/HashSet.h>
    3132#include <wtf/Threading.h>
    32 #include <wtf/HashSet.h>
    3333#include <wtf/WTFThreadData.h>
    3434#include <wtf/text/AtomicStringTable.h>
  • trunk/JavaScriptGlue/ChangeLog

    r58131 r58179  
     12010-04-22  Sam Weinig  <sam@webkit.org>
     2
     3        Reviewed by Anders Carlsson.
     4
     5        Fix for https://bugs.webkit.org/show_bug.cgi?id=38022
     6        Move isMainThread predicate function to MainThread.h
     7
     8        Added forwarding header for MainThread.h
     9
     10        * ForwardingHeaders/wtf/MainThread.h: Added.
     11
    1122010-04-22  Gavin Barraclough  <barraclough@apple.com>
    213
  • trunk/WebKitTools/ChangeLog

    r58178 r58179  
     12010-04-22  Sam Weinig  <sam@webkit.org>
     2
     3        Reviewed by Anders Carlsson.
     4
     5        Fix for https://bugs.webkit.org/show_bug.cgi?id=38022
     6        Move isMainThread predicate function to MainThread.h
     7
     8        Added forwarding header for MainThread.h
     9
     10        * DumpRenderTree/ForwardingHeaders/wtf/MainThread.h: Added.
     11
    1122010-04-23  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
    213
Note: See TracChangeset for help on using the changeset viewer.