|
|
- 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
-
|