diff --git a/src/json_rpc_request.cpp b/src/json_rpc_request.cpp index 085e769..64acd93 100644 --- a/src/json_rpc_request.cpp +++ b/src/json_rpc_request.cpp @@ -315,7 +315,7 @@ int CurlContext::on_timer(CURLM* /*multi*/, long timeout_ms) return 0; } - if (timeout_ms == 0) { + if ((timeout_ms == 0) && !uv_is_closing(reinterpret_cast(&m_async))) { // 0 ms timeout, but we can't just call on_timeout() here - we have to kick the UV loop const int result = uv_async_send(&m_async); if (result < 0) { diff --git a/src/p2pool_api.cpp b/src/p2pool_api.cpp index 27b61f8..6cf56c6 100644 --- a/src/p2pool_api.cpp +++ b/src/p2pool_api.cpp @@ -124,7 +124,9 @@ void p2pool_api::dump_to_file_async_internal(Category category, const char* file m_dumpData[path] = std::move(buf); } - uv_async_send(&m_dumpToFileAsync); + if (!uv_is_closing(reinterpret_cast(&m_dumpToFileAsync))) { + uv_async_send(&m_dumpToFileAsync); + } } void p2pool_api::dump_to_file()