You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

60 lines
1.8 KiB

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