From d6e246d84c6396f4f94e6e7d838f0015f16f5005 Mon Sep 17 00:00:00 2001 From: Dave Horton Date: Fri, 28 Jun 2024 07:28:35 -0400 Subject: [PATCH] fix: discard incoming binary or text frame if we are shutting down to avoid deadlock (#84) --- mod_audio_fork/audio_pipe.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mod_audio_fork/audio_pipe.cpp b/mod_audio_fork/audio_pipe.cpp index 7379463..de3645e 100644 --- a/mod_audio_fork/audio_pipe.cpp +++ b/mod_audio_fork/audio_pipe.cpp @@ -141,6 +141,11 @@ int AudioPipe::lws_callback(struct lws *wsi, return 0; } + if (ap->m_state == LWS_CLIENT_DISCONNECTING) { + lwsl_notice("AudioPipe::lws_service_thread race condition: got incoming message while closing the connection.\n"); + return 0; + } + if (lws_frame_is_binary(wsi)) { if (ap->is_bidirectional_audio_stream()) { ap->m_callback(ap->m_uuid.c_str(), ap->m_bugname.c_str(), AudioPipe::BINARY, NULL, (char *) in, len);