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 <legouguec@adacore.com>
This commit is contained in:
Tom Tromey
2024-11-20 11:13:28 -07:00
parent 00ce087f83
commit 278b1d211d

View File

@@ -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)