From 88665c8eb49d916b758dfbaccd298fc084436743 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Thu, 14 Dec 2023 20:59:04 -0600 Subject: [PATCH] fixed: debug session hanging when debugger disconnects --- interpreter/src/debug/debug_thread.c | 9 +++++++++ 1 file changed, 9 insertions(+) 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; -- 2.25.1