From 278b1d211ddbe0136168bc4a7346a0eb67adf1ab Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Wed, 20 Nov 2024 11:13:28 -0700 Subject: Add call_function_later to DAP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This adds a new call_function_later API to DAP. This arranges to run a function after the current request has completed. This isn't used yet, but will be at the end of this series. Reviewed-by: Kévin Le Gouguec --- gdb/python/lib/gdb/dap/server.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'gdb/python/lib') diff --git a/gdb/python/lib/gdb/dap/server.py b/gdb/python/lib/gdb/dap/server.py index ceffefc..0919045 100644 --- a/gdb/python/lib/gdb/dap/server.py +++ b/gdb/python/lib/gdb/dap/server.py @@ -281,6 +281,12 @@ class Server: return self.send_event(event, body) + @in_dap_thread + def call_function_later(self, fn): + """Call FN later -- after the current request's response has been sent.""" + with self.delayed_fns_lock: + self.delayed_fns.append(fn) + # Note that this does not need to be run in any particular thread, # because it just creates an object and writes it to a thread-safe # queue. @@ -321,6 +327,12 @@ def send_event_maybe_later(event, body=None): _server.send_event_maybe_later(event, body) +def call_function_later(fn): + """Call FN later -- after the current request's response has been sent.""" + global _server + _server.call_function_later(fn) + + # A helper decorator that checks whether the inferior is running. def _check_not_running(func): @functools.wraps(func) -- cgit v1.1