X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ee4f8c2af9c6c5458e488db10aef7d00a89ace25..add28c55a04eb30080fc2ef9d3c5ddf66eab236a:/include/wx/thread.h diff --git a/include/wx/thread.h b/include/wx/thread.h index 08e462a442..99091a44ab 100644 --- a/include/wx/thread.h +++ b/include/wx/thread.h @@ -22,14 +22,16 @@ typedef enum { MUTEX_NO_ERROR=0, MUTEX_DEAD_LOCK, // Mutex has been already locked by THE CALLING thread - MUTEX_BUSY // Mutex has been already locked by ONE thread + MUTEX_BUSY, // Mutex has been already locked by ONE thread + MUTEX_UNLOCKED } wxMutexError; typedef enum { THREAD_NO_ERROR=0, // No error THREAD_NO_RESOURCE, // No resource left to create a new thread THREAD_RUNNING, // The thread is already running - THREAD_NOT_RUNNING // The thread isn't running + THREAD_NOT_RUNNING, // The thread isn't running + THREAD_MISC_ERROR // Some other error } wxThreadError; // defines the interval of priority. @@ -39,7 +41,7 @@ typedef enum { // --------------------------------------------------------------------------- // Mutex handler -class wxMutexInternal; +class WXDLLEXPORT wxMutexInternal; class WXDLLEXPORT wxMutex { public: // constructor & destructor @@ -99,6 +101,12 @@ public: // Destroys the thread immediately if the defer flag isn't true. wxThreadError Destroy(); + // Pause a running thread + wxThreadError Pause(); + + // Resume a paused thread + wxThreadError Resume(); + // Switches on the defer flag. void DeferDestroy(bool on); @@ -116,11 +124,16 @@ public: // Returns true if the thread is alive. bool IsAlive() const; + // Returns true if the thread is running (not paused, not killed). + bool IsRunning() const; // Returns true if the thread is the main thread (aka the GUI thread). static bool IsMain(); // Called when thread exits. virtual void OnExit(); + + // Returns the wxThread object which corresponds to the ID. + static wxThread *GetThreadFromID(unsigned long id); protected: // In case, the DIFFER flag is true, enables another thread to kill this one. void TestDestroy(); @@ -139,7 +152,8 @@ private: // --------------------------------------------------------------------------- // Global variables -// GUI mutex. -WXDLLEXPORT_DATA(extern wxMutex) wxMainMutex; +// GUI mutex handling. +void WXDLLEXPORT wxMutexGuiEnter(); +void WXDLLEXPORT wxMutexGuiLeave(); #endif