diff --git a/configure.ac b/configure.ac index e16e0f7bc1..b2599b5aca 100644 --- a/configure.ac +++ b/configure.ac @@ -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 diff --git a/lib/isc/netmgr/netmgr.c b/lib/isc/netmgr/netmgr.c index 5052bd00f6..0248e2bf30 100644 --- a/lib/isc/netmgr/netmgr.c +++ b/lib/isc/netmgr/netmgr.c @@ -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); } /* diff --git a/lib/isc/netmgr/uv-compat.h b/lib/isc/netmgr/uv-compat.h index 960e0aed42..8cd4b160f5 100644 --- a/lib/isc/netmgr/uv-compat.h +++ b/lib/isc/netmgr/uv-compat.h @@ -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