From d8c65cf48881468f97798ac521fb93f9b8b5a293 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Mon, 10 Mar 2003 23:38:17 +0000 Subject: [PATCH] If zero time is specified, don't try to sleep when using a timer. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@19545 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/msw/utils.cpp | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/msw/utils.cpp b/src/msw/utils.cpp index 986e6602bf..2b1fc04bb0 100644 --- a/src/msw/utils.cpp +++ b/src/msw/utils.cpp @@ -876,7 +876,7 @@ bool wxShell(const wxString& command) return wxExecute(cmd, wxEXEC_SYNC) == 0; } -// Shutdown or reboot the PC +// Shutdown or reboot the PC bool wxShutdown(wxShutdownFlags wFlags) { #ifdef __WIN32__ @@ -884,27 +884,27 @@ bool wxShutdown(wxShutdownFlags wFlags) if ( wxGetOsVersion(NULL, NULL) == wxWINDOWS_NT ) // if is NT or 2K { - // Get a token for this process. - HANDLE hToken; + // Get a token for this process. + HANDLE hToken; bOK = ::OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken) != 0; if ( bOK ) { - TOKEN_PRIVILEGES tkp; + TOKEN_PRIVILEGES tkp; - // Get the LUID for the shutdown privilege. + // Get the LUID for the shutdown privilege. ::LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, - &tkp.Privileges[0].Luid); + &tkp.Privileges[0].Luid); - tkp.PrivilegeCount = 1; // one privilege to set - tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; + tkp.PrivilegeCount = 1; // one privilege to set + tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; - // Get the shutdown privilege for this process. + // Get the shutdown privilege for this process. ::AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, - (PTOKEN_PRIVILEGES)NULL, 0); + (PTOKEN_PRIVILEGES)NULL, 0); - // Cannot test the return value of AdjustTokenPrivileges. + // Cannot test the return value of AdjustTokenPrivileges. bOK = ::GetLastError() == ERROR_SUCCESS; } } @@ -927,7 +927,7 @@ bool wxShutdown(wxShutdownFlags wFlags) return FALSE; } - bOK = ::ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE | EWX_REBOOT, 0) != 0; + bOK = ::ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE | EWX_REBOOT, 0) != 0; } return bOK; @@ -1108,6 +1108,8 @@ void wxUsleep(unsigned long milliseconds) #else // !Win32 if (gs_inTimer) return; + if (miliseconds <= 0) + return; wxTheSleepTimer = new wxSleepTimer; gs_inTimer = TRUE; @@ -1126,6 +1128,8 @@ void wxSleep(int nSecs) { if (gs_inTimer) return; + if (nSecs <= 0) + return; wxTheSleepTimer = new wxSleepTimer; gs_inTimer = TRUE; -- 2.45.2