Skip to content

Commit 2a974ea

Browse files
committed
improve dap shutdown
maintain radio silence after disconnect response
1 parent c1b4476 commit 2a974ea

File tree

1 file changed

+9
-5
lines changed
  • apps/debug_adapter/lib/debug_adapter

1 file changed

+9
-5
lines changed

apps/debug_adapter/lib/debug_adapter/server.ex

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -391,7 +391,7 @@ defmodule ElixirLS.DebugAdapter.Server do
391391

392392
@impl GenServer
393393
def handle_cast({:receive_packet, request(_, "disconnect") = packet}, state = %__MODULE__{}) do
394-
Output.send_response(packet, %{})
394+
Output.debugger_console("Received disconnect request\n")
395395

396396
Output.telemetry("dap_request", %{"elixir_ls.dap_command" => "disconnect"}, %{
397397
"elixir_ls.dap_request_time" => 0
@@ -410,6 +410,11 @@ defmodule ElixirLS.DebugAdapter.Server do
410410
end
411411
end
412412

413+
# disable logger so we do not get unexpected
414+
# [notice] SIGTERM received - shutting down
415+
Logger.configure(level: :none)
416+
Output.send_response(packet, %{})
417+
413418
{:noreply, state, {:continue, :disconnect}}
414419
end
415420

@@ -559,8 +564,8 @@ defmodule ElixirLS.DebugAdapter.Server do
559564
)
560565
end
561566

562-
Output.send_event("exited", %{"exitCode" => exit_code})
563567
Output.send_event("terminated", %{"restart" => false})
568+
Output.send_event("exited", %{"exitCode" => exit_code})
564569

565570
{:noreply, %{state | task_ref: nil}}
566571
end
@@ -653,7 +658,6 @@ defmodule ElixirLS.DebugAdapter.Server do
653658
@impl GenServer
654659
def handle_continue(:disconnect, state = %__MODULE__{}) do
655660
unless :persistent_term.get(:debug_adapter_test_mode, false) do
656-
Output.debugger_console("Received disconnect request\n")
657661
Process.sleep(200)
658662
System.halt(0)
659663
else
@@ -795,8 +799,8 @@ defmodule ElixirLS.DebugAdapter.Server do
795799

796800
{%ServerError{} = error, stack} ->
797801
exit_code = 1
798-
Output.send_event("exited", %{"exitCode" => exit_code})
799802
Output.send_event("terminated", %{"restart" => false})
803+
Output.send_event("exited", %{"exitCode" => exit_code})
800804

801805
reraise error, stack
802806

@@ -806,8 +810,8 @@ defmodule ElixirLS.DebugAdapter.Server do
806810
Output.debugger_console(message)
807811

808812
exit_code = 1
809-
Output.send_event("exited", %{"exitCode" => exit_code})
810813
Output.send_event("terminated", %{"restart" => false})
814+
Output.send_event("exited", %{"exitCode" => exit_code})
811815

812816
raise ServerError,
813817
message: "launchError",

0 commit comments

Comments
 (0)