From: Tom Tromey Date: Wed, 20 Nov 2024 18:13:28 +0000 (-0700) Subject: Add call_function_later to DAP X-Git-Tag: gdb-16-branchpoint~153 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=278b1d211ddbe0136168bc4a7346a0eb67adf1ab;p=thirdparty%2Fbinutils-gdb.git Add call_function_later to DAP 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 --- diff --git a/gdb/python/lib/gdb/dap/server.py b/gdb/python/lib/gdb/dap/server.py index ceffefc81dc..09190452edf 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)