]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Use uv_sleep in the netmgr code
authorOndřej Surý <ondrej@sury.org>
Mon, 3 May 2021 10:10:03 +0000 (12:10 +0200)
committerOndřej Surý <ondrej@sury.org>
Mon, 3 May 2021 18:22:54 +0000 (20:22 +0200)
libuv added uv_sleep(unsigned int msec) to the API since 1.34.0.  Use that in
the netmgr code and define usleep based shim for libuv << 1.34.0.

configure.ac
lib/isc/netmgr/netmgr.c
lib/isc/netmgr/uv-compat.h

index e16e0f7bc1ce6f0cad3fb8fedecd8256ce56da38..b2599b5aca32e0609925ba4e993686d73df1240f 100644 (file)
@@ -600,7 +600,7 @@ LIBS="$LIBS $LIBUV_LIBS"
 
 # Those functions are only provided in newer versions of libuv, we'll be emulating them
 # for now
-AC_CHECK_FUNCS([uv_handle_get_data uv_handle_set_data uv_import uv_udp_connect uv_translate_sys_error])
+AC_CHECK_FUNCS([uv_handle_get_data uv_handle_set_data uv_import uv_udp_connect uv_translate_sys_error uv_sleep])
 AX_RESTORE_FLAGS([libuv])
 
 # libnghttp2
index 5052bd00f6ec47f63a04dd6fe971c1c9d6cc4dc2..0248e2bf302d4932f39056d58f643de7b531f7a6 100644 (file)
@@ -512,11 +512,7 @@ isc_nm_destroy(isc_nm_t **mgr0) {
         * Wait for the manager to be dereferenced elsewhere.
         */
        while (isc_refcount_current(&mgr->references) > 1 && counter++ < 1000) {
-#ifdef WIN32
-               _sleep(10);
-#else  /* ifdef WIN32 */
-               usleep(10000);
-#endif /* ifdef WIN32 */
+               uv_sleep(10);
        }
 
 #ifdef NETMGR_TRACE
@@ -531,11 +527,7 @@ isc_nm_destroy(isc_nm_t **mgr0) {
         * Now just patiently wait
         */
        while (isc_refcount_current(&mgr->references) > 1) {
-#ifdef WIN32
-               _sleep(10);
-#else  /* ifdef WIN32 */
-               usleep(10000);
-#endif /* ifdef WIN32 */
+               uv_sleep(10);
        }
 
        /*
index 960e0aed420a6e2924b1005eac089c9d3e9587be..8cd4b160f571fcc61dbd2a3c38e11abe96cab3cc 100644 (file)
@@ -33,6 +33,10 @@ uv_handle_set_data(uv_handle_t *handle, void *data) {
 }
 #endif /* ifndef HAVE_UV_HANDLE_SET_DATA */
 
+#ifndef HAVE_UV_SLEEP
+#define uv_sleep(msec) usleep(msec * 1000)
+#endif
+
 #ifdef HAVE_UV_UDP_CONNECT
 #define isc_uv_udp_connect uv_udp_connect
 #else