Use nanosleep(2) instead of usleep(3)

usleep(3) was declared obsolete in POSIX.1-2001 and removed in
POSIX.1-2008 and nanosleep(2) was recommended to be used instead.
This commit is contained in:
Alan Zhao authored and GitHub committed 2024-05-15 18:14:52 -04:00
1 parent 60dfabbeb7
commit aecf3f55ce
2 files changed
+10 -2

No files matched your search

+4 -1
View File
@@ -933,10 +933,13 @@ static void waitToApplyUpdates(void)
OS forcibly closes the pipe), we will unblock. Then we can loop on OS forcibly closes the pipe), we will unblock. Then we can loop on
kill() until the process is truly gone. */ kill() until the process is truly gone. */
int x = 0; int x = 0;
struct timespec req;
req.tv_sec = 0;
req.tv_nsec = 100000000;
read(3, &x, sizeof (x)); read(3, &x, sizeof (x));
info("Pipe has closed, waiting for process to fully go away now."); info("Pipe has closed, waiting for process to fully go away now.");
while (kill(options.waitforprocess, 0) == 0) { while (kill(options.waitforprocess, 0) == 0) {
usleep(100000); nanosleep(&req, NULL);
} }
#endif #endif
} }
+6 -1
View File
@@ -38,6 +38,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#include <fcntl.h> #include <fcntl.h>
#include <fenv.h> #include <fenv.h>
#include <sys/wait.h> #include <sys/wait.h>
#include <time.h>
qboolean stdinIsATTY; qboolean stdinIsATTY;
@@ -548,11 +549,15 @@ void Sys_Sleep( int msec )
} }
else else
{ {
struct timespec req;
// With nothing to select() on, we can't wait indefinitely // With nothing to select() on, we can't wait indefinitely
if( msec < 0 ) if( msec < 0 )
msec = 10; msec = 10;
usleep( msec * 1000 ); req.tv_sec = msec/1000;
req.tv_nsec = (msec%1000)*1000000;
nanosleep(&req, NULL);
} }
} }