[OpenWrt-Devel] [PATCHv2] procd: Switch to nanosleep

Rosen Penev rosenp at gmail.com
Sun Sep 1 16:26:43 EDT 2019


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 at gmail.com>
---
 v2: Add missing semicolon
 initd/init.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

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();
 		}
 	}
-- 
2.17.1


_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list