From f7b3c5ec4c7ee0a566b7e852e8f96bd407f322f3 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Mon, 19 Mar 2007 02:29:49 +0000 Subject: [PATCH] handle 0 timeout in RunLoop() correctly git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44919 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/common/selectdispatcher.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/common/selectdispatcher.cpp b/src/common/selectdispatcher.cpp index f58665f8ee..5ee2f0242d 100644 --- a/src/common/selectdispatcher.cpp +++ b/src/common/selectdispatcher.cpp @@ -198,13 +198,19 @@ void wxSelectDispatcher::RunLoop(int timeout) fd_set writeset = m_writeset; fd_set exeptset = m_exeptset; wxStopWatch sw; - if ( ptv ) + if ( ptv && timeout ) sw.Start(ptv->tv_usec/10); ret = select(m_maxFD+1, &readset, &writeset, &exeptset, ptv); switch ( ret ) { // TODO: handle unix signals here case -1: + if ( !timeout ) + { + // it doesn't make sense to remain here + return; + } + if ( ptv ) { ptv->tv_sec = 0; -- 2.50.0