================
@@ -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;
----------------
labath wrote:
Ok, I see what you meant with
https://github.com/llvm/llvm-project/issues/101475 now. That said I don't think
this solves anything, cause the same thing could now happen with the mainloop
pointer (if it is destroyed just as this function is exiting). The way I'd
ideally solve this is by ensuring that the main loop does not terminate (which
means the main loop and the platform objects will not be destroyed) until this
function is called.
https://github.com/llvm/llvm-project/pull/104238
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits