X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/121e1ac8b27290d0f4c4ab69c90afcfe01c38db7..da0a6b013bc904f772161daa7e8aa3b653437454:/src/unix/utilsunx.cpp diff --git a/src/unix/utilsunx.cpp b/src/unix/utilsunx.cpp index ab90839e68..9d7034dda6 100644 --- a/src/unix/utilsunx.cpp +++ b/src/unix/utilsunx.cpp @@ -149,12 +149,12 @@ void wxSleep(int nSecs) sleep(nSecs); } -void wxUsleep(unsigned long milliseconds) +void wxMicroSleep(unsigned long microseconds) { #if defined(HAVE_NANOSLEEP) timespec tmReq; - tmReq.tv_sec = (time_t)(milliseconds / 1000); - tmReq.tv_nsec = (milliseconds % 1000) * 1000 * 1000; + tmReq.tv_sec = (time_t)(microseconds / 1000000); + tmReq.tv_nsec = (microseconds % 1000000) * 1000; // we're not interested in remaining time nor in return value (void)nanosleep(&tmReq, (timespec *)NULL); @@ -167,15 +167,20 @@ void wxUsleep(unsigned long milliseconds) #error "usleep() cannot be used in MT programs under Solaris." #endif // Sun - usleep(milliseconds * 1000); // usleep(3) wants microseconds + usleep(microseconds); #elif defined(HAVE_SLEEP) // under BeOS sleep() takes seconds (what about other platforms, if any?) - sleep(milliseconds * 1000); + sleep(microseconds * 1000000); #else // !sleep function - #error "usleep() or nanosleep() function required for wxUsleep" + #error "usleep() or nanosleep() function required for wxMicroSleep" #endif // sleep function } +void wxMilliSleep(unsigned long milliseconds) +{ + wxMicroSleep(milliseconds*1000); +} + // ---------------------------------------------------------------------------- // process management // ---------------------------------------------------------------------------- @@ -508,7 +513,9 @@ long wxExecute(wxChar **argv, // start an xterm executing it. if ( !(flags & wxEXEC_SYNC) ) { - for ( int fd = 0; fd < FD_SETSIZE; fd++ ) + // FD_SETSIZE is unsigned under BSD, signed under other platforms + // so we need a cast to avoid warnings on all platforms + for ( int fd = 0; fd < (int)FD_SETSIZE; fd++ ) { if ( fd == pipeIn[wxPipe::Read] || fd == pipeOut[wxPipe::Write] @@ -926,7 +933,7 @@ bool wxSetEnv(const wxString& variable, const wxChar *value) s << _T('=') << value; // transform to ANSI - const char *p = s.mb_str(); + const wxWX2MBbuf p = s.mb_str(); // the string will be free()d by libc char *buf = (char *)malloc(strlen(p) + 1); @@ -934,7 +941,7 @@ bool wxSetEnv(const wxString& variable, const wxChar *value) return putenv(buf) == 0; #else // no way to set an env var - return FALSE; + return false; #endif } @@ -1158,10 +1165,10 @@ int wxGUIAppTraits::WaitForChild(wxExecuteData& execData) } #endif // wxUSE_STREAMS - // don't consume 100% of the CPU while we're sitting this in this + // don't consume 100% of the CPU while we're sitting in this // loop if ( idle ) - wxUsleep(1); + wxMilliSleep(1); // give GTK+ a chance to call GTK_EndProcessDetector here and // also repaint the GUI