Changeset 31690 in webkit for trunk/JavaScriptCore


Ignore:
Timestamp:
Apr 7, 2008, 2:04:38 PM (17 years ago)
Author:
Adam Roben
Message:

Add WTF::isMainThread

Reviewed by Alexey Proskuryakov.

  • wtf/Threading.h: Declare the new function.
  • wtf/ThreadingGtk.cpp: (WTF::initializeThreading): Initialize the main thread identifier. (WTF::isMainThread): Added.
  • wtf/ThreadingNone.cpp: Ditto ThreadingGtk.cpp. (WTF::initializeThreading): (WTF::isMainThread):
  • wtf/ThreadingPthreads.cpp: Ditto. (WTF::initializeThreading): (WTF::isMainThread):
  • wtf/ThreadingWin.cpp: Ditto. (WTF::initializeThreading): (WTF::isMainThread):
Location:
trunk/JavaScriptCore
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/ChangeLog

    r31677 r31690  
     12008-04-07  Adam Roben  <[email protected]>
     2
     3        Add WTF::isMainThread
     4
     5        Reviewed by Alexey Proskuryakov.
     6
     7        * wtf/Threading.h: Declare the new function.
     8        * wtf/ThreadingGtk.cpp:
     9        (WTF::initializeThreading): Initialize the main thread identifier.
     10        (WTF::isMainThread): Added.
     11        * wtf/ThreadingNone.cpp: Ditto ThreadingGtk.cpp.
     12        (WTF::initializeThreading):
     13        (WTF::isMainThread):
     14        * wtf/ThreadingPthreads.cpp: Ditto.
     15        (WTF::initializeThreading):
     16        (WTF::isMainThread):
     17        * wtf/ThreadingWin.cpp: Ditto.
     18        (WTF::initializeThreading):
     19        (WTF::isMainThread):
     20
    1212008-04-06  Alexey Proskuryakov  <[email protected]>
    222
  • trunk/JavaScriptCore/wtf/Threading.h

    r31560 r31690  
    106106ThreadIdentifier createThread(ThreadFunction, void*);
    107107ThreadIdentifier currentThread();
     108bool isMainThread();
    108109int waitForThreadCompletion(ThreadIdentifier, void**);
    109110void detachThread(ThreadIdentifier);
     
    253254using WTF::createThread;
    254255using WTF::currentThread;
     256using WTF::isMainThread;
    255257using WTF::detachThread;
    256258using WTF::waitForThreadCompletion;
  • trunk/JavaScriptCore/wtf/ThreadingGtk.cpp

    r31560 r31690  
    4040Mutex* atomicallyInitializedStaticMutex;
    4141
     42static ThreadIdentifier mainThreadIdentifier;
     43
    4244void initializeThreading()
    4345{
     
    4749        atomicallyInitializedStaticMutex = new Mutex;
    4850        wtf_random_init();
     51        mainThreadIdentifier = currentThread();
    4952    }
    5053    ASSERT(g_thread_supported());
     
    137140        return id;
    138141    return establishIdentifierForThread(currentThread);
     142}
     143
     144bool isMainThread()
     145{
     146    return currentThread() == mainThreadIdentifier;
    139147}
    140148
  • trunk/JavaScriptCore/wtf/ThreadingNone.cpp

    r31560 r31690  
    3939void detachThread(ThreadIdentifier) { }
    4040ThreadIdentifier currentThread() { return 0; }
     41bool isMainThread() { return false; }
    4142
    4243Mutex::Mutex() {}
  • trunk/JavaScriptCore/wtf/ThreadingPthreads.cpp

    r31560 r31690  
    4040Mutex* atomicallyInitializedStaticMutex;
    4141
     42static ThreadIdentifier mainThreadIdentifier;
     43
    4244void initializeThreading()
    4345{
     
    4547        atomicallyInitializedStaticMutex = new Mutex;
    4648        wtf_random_init();
     49        mainThreadIdentifier = currentThread();
    4750    }
    4851}
     
    145148}
    146149
     150bool isMainThread()
     151{
     152    return currentThread() == mainThreadIdentifier;
     153}
     154
    147155Mutex::Mutex()
    148156{
  • trunk/JavaScriptCore/wtf/ThreadingWin.cpp

    r31560 r31690  
    6464#include "Threading.h"
    6565
     66#include "MainThread.h"
    6667#include <windows.h>
    6768#include <wtf/HashMap.h>
     
    7273Mutex* atomicallyInitializedStaticMutex;
    7374
     75static ThreadIdentifier mainThreadIdentifier;
     76
    7477void initializeThreading()
    7578{
     
    7780        atomicallyInitializedStaticMutex = new Mutex;
    7881        wtf_random_init();
     82        initializeMainThread();
     83        mainThreadIdentifier = currentThread();
    7984    }
    8085}
     
    159164{
    160165    return static_cast<ThreadIdentifier>(::GetCurrentThreadId());
     166}
     167
     168bool isMainThread()
     169{
     170    return currentThread() == mainThreadIdentifier;
    161171}
    162172
Note: See TracChangeset for help on using the changeset viewer.