@see Signal()
*/
- void Broadcast();
+ wxCondError Broadcast();
/**
Returns @true if the object had been initialized successfully, @false
@see Broadcast()
*/
- void Signal();
+ wxCondError Signal();
/**
Waits until the condition is signalled.
*/
virtual ~wxThreadHelper();
- /**
- Creates a new thread.
-
- The thread object is created in the suspended state, and you
- should call @ref wxThread::Run GetThread()-Run to start running it.
-
- You may optionally specify the stack size to be allocated to it (ignored
- on platforms that don't support setting it explicitly, eg. Unix).
-
- @return One of the ::wxThreadError enum values.
- */
- wxThreadError Create(unsigned int stackSize = 0);
-
/**
This is the entry point of the thread.
This function is called by wxWidgets itself and should never be called
directly.
*/
- virtual ExitCode Entry();
+ virtual ExitCode Entry() = 0;
+
+ /**
+ Creates a new thread.
+
+ The thread object is created in the suspended state, and you
+ should call @ref wxThread::Run GetThread()-Run to start running it.
+
+ You may optionally specify the stack size to be allocated to it (ignored
+ on platforms that don't support setting it explicitly, eg. Unix).
+
+ @return One of the ::wxThreadError enum values.
+ */
+ wxThreadError Create(unsigned int stackSize = 0);
/**
This is a public function that returns the wxThread object
See @ref thread_deletion for a broader explanation of this routine.
*/
- wxThreadError Delete();
-
- /**
- This is the entry point of the thread.
-
- This function is pure virtual and must be implemented by any derived class.
- The thread execution will start here.
-
- The returned value is the thread exit code which is only useful for
- joinable threads and is the value returned by Wait().
- This function is called by wxWidgets itself and should never be called
- directly.
- */
- virtual ExitCode Entry();
-
- /**
- This is a protected function of the wxThread class and thus can only be called
- from a derived class. It also can only be called in the context of this
- thread, i.e. a thread can only exit from itself, not from another thread.
-
- This function will terminate the OS thread (i.e. stop the associated path of
- execution) and also delete the associated C++ object for detached threads.
- OnExit() will be called just before exiting.
- */
- void Exit(ExitCode exitcode = 0);
+ wxThreadError Delete(void** rc = NULL);
/**
Returns the number of system CPUs or -1 if the value is unknown.
identifies the thread throughout the system during its existence
(i.e. the thread identifiers may be reused).
*/
- unsigned long GetId() const;
+ wxThreadIdType GetId() const;
/**
Gets the priority of the thread, between zero and 100.
- @b WXTHREAD_DEFAULT_PRIORITY: 50
- @b WXTHREAD_MAX_PRIORITY: 100
*/
- int GetPriority() const;
+ unsigned int GetPriority() const;
/**
Returns @true if the thread is alive (i.e. started and not terminating).
- @b WXTHREAD_DEFAULT_PRIORITY: 50
- @b WXTHREAD_MAX_PRIORITY: 100
*/
- void SetPriority(int priority);
+ void SetPriority(unsigned int priority);
/**
Pauses the thread execution for the given amount of time.
See @ref thread_deletion for a broader explanation of this routine.
*/
- ExitCode Wait() const;
+ ExitCode Wait();
/**
Give the rest of the thread time slice to the system allowing the other
See also Sleep().
*/
static void Yield();
+
+protected:
+
+ /**
+ This is the entry point of the thread.
+
+ This function is pure virtual and must be implemented by any derived class.
+ The thread execution will start here.
+
+ The returned value is the thread exit code which is only useful for
+ joinable threads and is the value returned by Wait().
+ This function is called by wxWidgets itself and should never be called
+ directly.
+ */
+ virtual ExitCode Entry() = 0;
+
+ /**
+ This is a protected function of the wxThread class and thus can only be called
+ from a derived class. It also can only be called in the context of this
+ thread, i.e. a thread can only exit from itself, not from another thread.
+
+ This function will terminate the OS thread (i.e. stop the associated path of
+ execution) and also delete the associated C++ object for detached threads.
+ OnExit() will be called just before exiting.
+ */
+ void Exit(ExitCode exitcode = 0);
};
- wxSEMA_TIMEOUT: Timeout occurred without receiving semaphore.
- wxSEMA_MISC_ERROR: Miscellaneous error.
*/
- wxSemaError WaitTimeout(unsigned longtimeout_millis);
+ wxSemaError WaitTimeout(unsigned long timeout_millis);
};