make wxThread::OnExit private and not public (change tested on wxMSW and wxGTK)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56984 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
5159e01481
commit
a5cc517ff6
@ -271,7 +271,7 @@ private:
|
||||
|
||||
#if wxCRITSECT_IS_MUTEX
|
||||
// implement wxCriticalSection using mutexes
|
||||
inline wxCriticalSection::wxCriticalSection( wxCriticalSectionType critSecType )
|
||||
inline wxCriticalSection::wxCriticalSection( wxCriticalSectionType critSecType )
|
||||
: m_mutex( critSecType == wxCRITSEC_DEFAULT ? wxMUTEX_RECURSIVE : wxMUTEX_DEFAULT ) { }
|
||||
inline wxCriticalSection::~wxCriticalSection() { }
|
||||
|
||||
@ -558,11 +558,6 @@ public:
|
||||
wxThreadKind GetKind() const
|
||||
{ return m_isDetached ? wxTHREAD_DETACHED : wxTHREAD_JOINABLE; }
|
||||
|
||||
// called when the thread exits - in the context of this thread
|
||||
//
|
||||
// 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()!
|
||||
@ -585,6 +580,11 @@ private:
|
||||
wxThread(const wxThread&);
|
||||
wxThread& operator=(const wxThread&);
|
||||
|
||||
// called when the thread exits - in the context of this thread
|
||||
//
|
||||
// NB: this function will not be called if the thread is Kill()ed
|
||||
virtual void OnExit() { }
|
||||
|
||||
friend class wxThreadInternal;
|
||||
|
||||
// the (platform-dependent) thread class implementation
|
||||
@ -639,14 +639,14 @@ private:
|
||||
// sets it to NULL, then the thread object still
|
||||
// exists and can be killed
|
||||
wxCriticalSectionLocker locker(m_critSection);
|
||||
|
||||
|
||||
if ( m_thread )
|
||||
{
|
||||
m_thread->Kill();
|
||||
|
||||
|
||||
if ( m_kind == wxTHREAD_JOINABLE )
|
||||
delete m_thread;
|
||||
|
||||
|
||||
m_thread = NULL;
|
||||
}
|
||||
}
|
||||
@ -678,9 +678,9 @@ public:
|
||||
wxThread *GetThread() const
|
||||
{
|
||||
wxCriticalSectionLocker locker((wxCriticalSection&)m_critSection);
|
||||
|
||||
|
||||
wxThread* thread = m_thread;
|
||||
|
||||
|
||||
return thread;
|
||||
}
|
||||
|
||||
@ -688,7 +688,7 @@ protected:
|
||||
wxThread *m_thread;
|
||||
wxThreadKind m_kind;
|
||||
wxCriticalSection m_critSection; // To guard the m_thread variable
|
||||
|
||||
|
||||
friend class wxThreadHelperThread;
|
||||
};
|
||||
|
||||
@ -696,16 +696,16 @@ protected:
|
||||
inline void *wxThreadHelperThread::Entry()
|
||||
{
|
||||
void * const result = m_owner.Entry();
|
||||
|
||||
|
||||
wxCriticalSectionLocker locker(m_owner.m_critSection);
|
||||
|
||||
|
||||
// Detached thread will be deleted after returning, so make sure
|
||||
// wxThreadHelper::GetThread will not return an invalid pointer.
|
||||
// And that wxThreadHelper::KillThread will not try to kill
|
||||
// an already deleted thread
|
||||
if ( m_owner.m_kind == wxTHREAD_DETACHED )
|
||||
m_owner.m_thread = NULL;
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -1058,17 +1058,6 @@ public:
|
||||
*/
|
||||
wxThreadError Kill();
|
||||
|
||||
/**
|
||||
Called when the thread exits.
|
||||
|
||||
This function is called in the context of the thread associated with the
|
||||
wxThread object, not in the context of the main thread.
|
||||
This function will not be called if the thread was @ref Kill() killed.
|
||||
|
||||
This function should never be called directly.
|
||||
*/
|
||||
virtual void OnExit();
|
||||
|
||||
/**
|
||||
Suspends the thread.
|
||||
|
||||
@ -1227,6 +1216,19 @@ protected:
|
||||
OnExit() will be called just before exiting.
|
||||
*/
|
||||
void Exit(ExitCode exitcode = 0);
|
||||
|
||||
private:
|
||||
|
||||
/**
|
||||
Called when the thread exits.
|
||||
|
||||
This function is called in the context of the thread associated with the
|
||||
wxThread object, not in the context of the main thread.
|
||||
This function will not be called if the thread was @ref Kill() killed.
|
||||
|
||||
This function should never be called directly.
|
||||
*/
|
||||
virtual void OnExit();
|
||||
};
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user