Skip to content

Commit

Permalink
Use nanosleep(2) instead of usleep(3)
Browse files Browse the repository at this point in the history
usleep(3) was declared obsolete in POSIX.1-2001 and removed in
POSIX.1-2008 and nanosleep(2) was recommended to be used instead.
  • Loading branch information
alanzhao1 committed May 15, 2024
1 parent 60dfabb commit aecf3f5
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 2 deletions.
5 changes: 4 additions & 1 deletion code/autoupdater/autoupdater.c
Original file line number Diff line number Diff line change
Expand Up @@ -933,10 +933,13 @@ static void waitToApplyUpdates(void)
OS forcibly closes the pipe), we will unblock. Then we can loop on
kill() until the process is truly gone. */
int x = 0;
struct timespec req;
req.tv_sec = 0;
req.tv_nsec = 100000000;
read(3, &x, sizeof (x));
info("Pipe has closed, waiting for process to fully go away now.");
while (kill(options.waitforprocess, 0) == 0) {
usleep(100000);
nanosleep(&req, NULL);
}
#endif
}
Expand Down
7 changes: 6 additions & 1 deletion code/sys/sys_unix.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#include <fcntl.h>
#include <fenv.h>
#include <sys/wait.h>
#include <time.h>

qboolean stdinIsATTY;

Expand Down Expand Up @@ -548,11 +549,15 @@ void Sys_Sleep( int msec )
}
else
{
struct timespec req;

// With nothing to select() on, we can't wait indefinitely
if( msec < 0 )
msec = 10;

usleep( msec * 1000 );
req.tv_sec = msec/1000;
req.tv_nsec = (msec%1000)*1000000;
nanosleep(&req, NULL);
}
}

Expand Down

0 comments on commit aecf3f5

Please sign in to comment.