X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b89156b5dbb3c1270452379801a79613cd69bb32..100af5a812b607d7929473af744a554b3d5ab065:/include/wx/thread.h diff --git a/include/wx/thread.h b/include/wx/thread.h index 64481d7c88..99091a44ab 100644 --- a/include/wx/thread.h +++ b/include/wx/thread.h @@ -30,7 +30,8 @@ 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. @@ -40,7 +41,7 @@ typedef enum { // --------------------------------------------------------------------------- // Mutex handler -class wxMutexInternal; +class WXDLLEXPORT wxMutexInternal; class WXDLLEXPORT wxMutex { public: // constructor & destructor @@ -100,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); @@ -117,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(); @@ -140,7 +152,8 @@ private: // --------------------------------------------------------------------------- // Global variables -// GUI mutex. -WXDLLEXPORT_DATA(extern wxMutex) wxMainMutex; +// GUI mutex handling. +void WXDLLEXPORT wxMutexGuiEnter(); +void WXDLLEXPORT wxMutexGuiLeave(); #endif