From: Rosen Penev <rosenp@gmail.com>
Date: Sun, 1 Sep 2019 20:26:43 +0000 (-0700)
Subject: procd: Switch to nanosleep
X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=8e9fb51fa66e614620a97d371176610e7e1d0010;p=project%2Fprocd.git

procd: Switch to nanosleep

usleep has been deprecated by POSIX.1-2001 and removed in POSIX.1-2008.
Fixes compilation when libc does not include usleep (optional with
uClibc-ng).

nanosleep also has the advantage of being more accurate.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
---

diff --git a/initd/init.c b/initd/init.c
index 29eee50..b253fb6 100644
--- a/initd/init.c
+++ b/initd/init.c
@@ -97,12 +97,13 @@ main(int argc, char **argv)
 	if (pid <= 0) {
 		ERROR("Failed to start kmodloader instance: %m\n");
 	} else {
+		const struct timespec req = {0, 10 * 1000 * 1000};
 		int i;
 
 		for (i = 0; i < 1200; i++) {
 			if (waitpid(pid, NULL, WNOHANG) > 0)
 				break;
-			usleep(10 * 1000);
+			nanosleep(&req, NULL);
 			watchdog_ping();
 		}
 	}