================ @@ -150,12 +153,17 @@ static void client_handle(GDBRemoteCommunicationServerPlatform &platform, printf("Disconnected.\n"); } -static GDBRemoteCommunicationServerPlatform::PortMap gdbserver_portmap; -static std::mutex gdbserver_portmap_mutex; - static void spawn_process_reaped(lldb::pid_t pid, int signal, int status) { - std::lock_guard<std::mutex> guard(gdbserver_portmap_mutex); - gdbserver_portmap.FreePortForProcess(pid); + if (g_single_pid != LLDB_INVALID_PROCESS_ID && g_single_pid == pid) { + // If not running as a server and the platform connection is closed + if (!g_terminate) { + g_terminate = true; ---------------- slydiman wrote:
We need this callback only in case of non-server mode and tcp protocol. Note this callback is called from the MonitorChildProcessThread. See the issue #101475. We must be very careful with this callback and we cannot change any arguments. I have removed g_terminate. https://github.com/llvm/llvm-project/pull/104238 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits