git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27027
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
Calling \helpref{Delete}{wxthreaddelete} is a graceful way to terminate the
thread. It asks the thread to terminate and, if the thread code is well
Calling \helpref{Delete}{wxthreaddelete} is a graceful way to terminate the
thread. It asks the thread to terminate and, if the thread code is well
-written, the thread will terminate after the next call to
+written, the thread will terminate after the next call to
\helpref{TestDestroy}{wxthreadtestdestroy} which should happen quite soon.
However, if the thread doesn't call \helpref{TestDestroy}{wxthreadtestdestroy}
\helpref{TestDestroy}{wxthreadtestdestroy} which should happen quite soon.
However, if the thread doesn't call \helpref{TestDestroy}{wxthreadtestdestroy}
number of threads that the system tries to schedule to run in parallel.
The value of $0$ for {\it level} may be used to set the default one.
number of threads that the system tries to schedule to run in parallel.
The value of $0$ for {\it level} may be used to set the default one.
-Returns true on success or false otherwise (for example, if this function is
+Returns \true on success or false otherwise (for example, if this function is
not implemented for this platform -- currently everything except Solaris).
\membersection{wxThread::TestDestroy}\label{wxthreadtestdestroy}
not implemented for this platform -- currently everything except Solaris).
\membersection{wxThread::TestDestroy}\label{wxthreadtestdestroy}
-\func{bool}{TestDestroy}{\void}
+\func{virtual bool}{TestDestroy}{\void}
This function should be called periodically by the thread to ensure that calls
to \helpref{Pause}{wxthreadpause} and \helpref{Delete}{wxthreaddelete} will
This function should be called periodically by the thread to ensure that calls
to \helpref{Pause}{wxthreadpause} and \helpref{Delete}{wxthreaddelete} will
-work. If it returns true, the thread should exit as soon as possible.
+work. If it returns \true, the thread should exit as soon as possible.
+
+Notice that under some platforms (POSIX), implementation of
+\helpref{Pause}{wxthreadpause} also relies on this function being called, so
+not calling it would prevent both stopping and suspending thread from working.
\membersection{wxThread::This}\label{wxthreadthis}
\membersection{wxThread::This}\label{wxthreadthis}
public:
// lock the mutex in the ctor
wxMutexLocker(wxMutex& mutex)
public:
// lock the mutex in the ctor
wxMutexLocker(wxMutex& mutex)
- : m_isOk(FALSE), m_mutex(mutex)
+ : m_isOk(false), m_mutex(mutex)
{ m_isOk = ( m_mutex.Lock() == wxMUTEX_NO_ERROR ); }
{ m_isOk = ( m_mutex.Lock() == wxMUTEX_NO_ERROR ); }
- // returns TRUE if mutex was successfully locked in ctor
+ // returns true if mutex was successfully locked in ctor
bool IsOk() const
{ return m_isOk; }
bool IsOk() const
{ return m_isOk; }
// dtor is not virtual, don't use this class polymorphically
~wxCondition();
// dtor is not virtual, don't use this class polymorphically
~wxCondition();
- // return TRUE if the condition has been created successfully
+ // return true if the condition has been created successfully
bool IsOk() const;
// NB: the associated mutex MUST be locked beforehand by the calling thread
bool IsOk() const;
// NB: the associated mutex MUST be locked beforehand by the calling thread
// exactly as Wait() except that it may also return if the specified
// timeout ellapses even if the condition hasn't been signalled: in this
// exactly as Wait() except that it may also return if the specified
// timeout ellapses even if the condition hasn't been signalled: in this
- // case, the return value is FALSE, otherwise (i.e. in case of a normal
- // return) it is TRUE
+ // case, the return value is false, otherwise (i.e. in case of a normal
+ // return) it is true
//
// the timeeout parameter specifies a interval that needs to be waited in
// milliseconds
//
// the timeeout parameter specifies a interval that needs to be waited in
// milliseconds
// dtor is not virtual, don't use this class polymorphically
~wxSemaphore();
// dtor is not virtual, don't use this class polymorphically
~wxSemaphore();
- // return TRUE if the semaphore has been created successfully
+ // return true if the semaphore has been created successfully
bool IsOk() const;
// wait indefinitely, until the semaphore count goes beyond 0
bool IsOk() const;
// wait indefinitely, until the semaphore count goes beyond 0
// default value (usually acceptable, but may not yield the best
// performance for this process)
//
// default value (usually acceptable, but may not yield the best
// performance for this process)
//
- // Returns TRUE on success, FALSE otherwise (if not implemented, for
+ // Returns true on success, false otherwise (if not implemented, for
// example)
static bool SetConcurrency(size_t level);
// example)
static bool SetConcurrency(size_t level);
// NB: this function will not be called if the thread is Kill()ed
virtual void OnExit() { }
// NB: this function will not be called if the thread is Kill()ed
virtual void OnExit() { }
+ // Returns true if the thread was asked to terminate: this function should
+ // be called by the thread from time to time, otherwise the main thread
+ // will be left forever in Delete()!
+ virtual bool TestDestroy();
+
// dtor is public, but the detached threads should never be deleted - use
// Delete() instead (or leave the thread terminate by itself)
virtual ~wxThread();
protected:
// dtor is public, but the detached threads should never be deleted - use
// Delete() instead (or leave the thread terminate by itself)
virtual ~wxThread();
protected:
- // Returns TRUE if the thread was asked to terminate: this function should
- // be called by the thread from time to time, otherwise the main thread
- // will be left forever in Delete()!
- bool TestDestroy();
-
// exits from the current thread - can be called only from this thread
void Exit(ExitCode exitcode = 0);
// exits from the current thread - can be called only from this thread
void Exit(ExitCode exitcode = 0);
// thread
extern void WXDLLIMPEXP_BASE wxMutexGuiLeaveOrEnter();
// thread
extern void WXDLLIMPEXP_BASE wxMutexGuiLeaveOrEnter();
- // returns TRUE if the main thread has GUI lock
+ // returns true if the main thread has GUI lock
extern bool WXDLLIMPEXP_BASE wxGuiOwnedByMainThread();
#ifndef __WXPM__
extern bool WXDLLIMPEXP_BASE wxGuiOwnedByMainThread();
#ifndef __WXPM__
extern void WXDLLIMPEXP_BASE wxWakeUpMainThread();
#endif // !OS/2
extern void WXDLLIMPEXP_BASE wxWakeUpMainThread();
#endif // !OS/2
- // return TRUE if the main thread is waiting for some other to terminate:
+ // return true if the main thread is waiting for some other to terminate:
// wxApp then should block all "dangerous" messages
extern bool WXDLLIMPEXP_BASE wxIsWaitingForThread();
#endif // MSW, Mac, OS/2
// wxApp then should block all "dangerous" messages
extern bool WXDLLIMPEXP_BASE wxIsWaitingForThread();
#endif // MSW, Mac, OS/2