From: Brendan Hansen Date: Fri, 15 Dec 2023 02:59:04 +0000 (-0600) Subject: fixed: debug session hanging when debugger disconnects X-Git-Url: https://git.brendanfh.com/?a=commitdiff_plain;h=88665c8eb49d916b758dfbaccd298fc084436743;p=onyx.git fixed: debug session hanging when debugger disconnects --- diff --git a/interpreter/src/debug/debug_thread.c b/interpreter/src/debug/debug_thread.c index 867f9ef5..59ed4b85 100644 --- a/interpreter/src/debug/debug_thread.c +++ b/interpreter/src/debug/debug_thread.c @@ -621,6 +621,15 @@ void *__debug_thread_entry(void * data) { // Try to read commands from the client. // If an error was returned, bail out of this thread. i32 bytes_read = recv(debug->client_fd, command, 4096, 0); + if (bytes_read == 0) { + printf("[INFO ] OVM Debugger connection closed by peer.\n"); + debug->debug_thread_running = false; + bh_arr_each(debug_thread_state_t *, pthread, debug->threads) { + resume_thread(*pthread); + } + break; + } + if (bytes_read == -1) { switch (errno) { case EAGAIN: break;