|
From a346a4d0d732fdca306283c18b404679bbf40427 Mon Sep 17 00:00:00 2001
|
|
From: Rosen Penev <rosenp@gmail.com>
|
|
Date: Fri, 3 Apr 2020 17:51:45 -0700
|
|
Subject: [PATCH] Do not use usleep when using newer POSIX C source.
|
|
|
|
usleep is deprecated and is optionally unavailable with uClibc-ng.
|
|
|
|
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
(cherry picked from commit c91d82a7b74df3a08de2f94a1ec2a75a7803b6bd)
|
|
---
|
|
upnp/inc/ithread.h | 10 +++++++++-
|
|
upnp/src/genlib/miniserver/miniserver.c | 4 ++--
|
|
2 files changed, 11 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/upnp/inc/ithread.h b/upnp/inc/ithread.h
|
|
index 38aad3f..cc76440 100644
|
|
--- a/upnp/inc/ithread.h
|
|
+++ b/upnp/inc/ithread.h
|
|
@@ -928,7 +928,15 @@ static UPNP_INLINE int ithread_cleanup_thread(void) {
|
|
#ifdef _WIN32
|
|
#define imillisleep Sleep
|
|
#else
|
|
- #define imillisleep(x) usleep(1000*x)
|
|
+#if _POSIX_C_SOURCE < 200809L
|
|
+ #define imillisleep(x) usleep(1000 * x)
|
|
+#else
|
|
+ #define imillisleep(x) \
|
|
+ do { \
|
|
+ const struct timespec req = {0, x * 1000 * 1000}; \
|
|
+ nanosleep(&req, NULL); \
|
|
+ } while(0)
|
|
+#endif
|
|
#endif
|
|
|
|
|
|
diff --git a/upnp/src/genlib/miniserver/miniserver.c b/upnp/src/genlib/miniserver/miniserver.c
|
|
index 9251d5b..31babd0 100644
|
|
--- a/upnp/src/genlib/miniserver/miniserver.c
|
|
+++ b/upnp/src/genlib/miniserver/miniserver.c
|
|
@@ -905,7 +905,7 @@ int StartMiniServer(
|
|
count = 0;
|
|
while (gMServState != (MiniServerState)MSERV_RUNNING && count < max_count) {
|
|
/* 0.05s */
|
|
- usleep(50u * 1000u);
|
|
+ imillisleep(50);
|
|
count++;
|
|
}
|
|
if (count >= max_count) {
|
|
@@ -960,7 +960,7 @@ int StopMiniServer()
|
|
ssdpAddr.sin_port = htons(miniStopSockPort);
|
|
sendto(sock, buf, bufLen, 0,
|
|
(struct sockaddr *)&ssdpAddr, socklen);
|
|
- usleep(1000u);
|
|
+ imillisleep(1);
|
|
if (gMServState == (MiniServerState)MSERV_IDLE) {
|
|
break;
|
|
}
|
|
--
|
|
2.25.1
|
|
|