Skip to content

Commit

Permalink
Send sigterm to server adapter executable after connection closes
Browse files Browse the repository at this point in the history
Should fix #948
  • Loading branch information
mfussenegger committed Jun 1, 2023
1 parent d234b0a commit 7c1d47c
Showing 1 changed file with 22 additions and 6 deletions.
28 changes: 22 additions & 6 deletions lua/dap/session.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1119,7 +1119,7 @@ end


---@param adapter ServerAdapter
---@return ServerAdapter
---@return ServerAdapter, uv_process_t?
local function spawn_server_executable(adapter)
local cmd = assert(adapter.executable.command, "executable of server adapter must have a `command` property")
log.debug("Starting debug adapter server executable", adapter.executable)
Expand Down Expand Up @@ -1174,7 +1174,7 @@ local function spawn_server_executable(adapter)
end
stderr:read_start(read_output('stderr', stderr))
stdout:read_start(read_output('stdout', stdout))
return adapter
return adapter, handle
end


Expand All @@ -1196,17 +1196,33 @@ function Session.connect(_, adapter, opts, on_connect)
end)
end

if adapter.executable then
local handle
adapter, handle = spawn_server_executable(adapter)
session.adapter = adapter

if handle then
local _close = close
close = function(cb)
_close(function()
if not handle:is_closing() then
handle:kill("sigterm")
end
if cb then
cb()
end
end)
end
end
end

session.client = {
write = function(line)
client:write(line)
end;
close = close
}

if adapter.executable then
adapter = spawn_server_executable(adapter)
session.adapter = adapter
end
log.debug('Connecting to debug adapter', adapter)
local max_retries = (adapter.options or {}).max_retries or 14

Expand Down

0 comments on commit 7c1d47c

Please sign in to comment.