Added wxYieldIfNeeded
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9410 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -80,6 +80,8 @@ void wxExit()
|
||||
// wxYield
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
static bool gs_inYield = FALSE;
|
||||
|
||||
bool wxYield()
|
||||
{
|
||||
#if wxUSE_THREADS
|
||||
@@ -90,14 +92,12 @@ bool wxYield()
|
||||
}
|
||||
#endif // wxUSE_THREADS
|
||||
|
||||
#ifdef __WXDEBUG__
|
||||
static bool s_inYield = FALSE;
|
||||
|
||||
if (s_inYield)
|
||||
#ifdef __WXDEBUG__
|
||||
if (gs_inYield)
|
||||
wxFAIL_MSG( wxT("wxYield called recursively" ) );
|
||||
|
||||
s_inYield = TRUE;
|
||||
#endif
|
||||
|
||||
gs_inYield = TRUE;
|
||||
|
||||
if (!g_isIdle)
|
||||
{
|
||||
@@ -123,13 +123,24 @@ bool wxYield()
|
||||
// let the logs be flashed again
|
||||
wxLog::Resume();
|
||||
|
||||
#ifdef __WXDEBUG__
|
||||
s_inYield = FALSE;
|
||||
#endif
|
||||
gs_inYield = FALSE;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxYieldIfNeeded
|
||||
// Like wxYield, but fails silently if the yield is recursive.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
bool wxYieldIfNeeded()
|
||||
{
|
||||
if (gs_inYield)
|
||||
return FALSE;
|
||||
|
||||
return wxYield();
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxWakeUpIdle
|
||||
//-----------------------------------------------------------------------------
|
||||
|
Reference in New Issue
Block a user