]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Refactor DAP queue handling
authorTom Tromey <tromey@adacore.com>
Tue, 7 Nov 2023 16:16:48 +0000 (09:16 -0700)
committerTom Tromey <tromey@adacore.com>
Tue, 21 Nov 2023 14:09:08 +0000 (07:09 -0700)
A couple of spots in the DAP code use the same workaround for the
absence of queue.SimpleQueue before Python 3.6.  This patch
consolidates these into a single spot.

gdb/python/lib/gdb/dap/server.py
gdb/python/lib/gdb/dap/startup.py

index 031bf49f48696e4080409e6977335e8ab6ec3a83..ead911d11dabd0497fe0105906ac87e35f7d5697 100644 (file)
 import functools
 import inspect
 import json
-import queue
-import sys
 
 from .io import start_json_writer, read_json
 from .startup import (
     exec_and_log,
+    DAPQueue,
     in_dap_thread,
     in_gdb_thread,
     send_gdb,
@@ -54,10 +53,7 @@ class Server:
         # This queue accepts JSON objects that are then sent to the
         # DAP client.  Writing is done in a separate thread to avoid
         # blocking the read loop.
-        if sys.version_info[0] == 3 and sys.version_info[1] <= 6:
-            self.write_queue = queue.Queue()
-        else:
-            self.write_queue = queue.SimpleQueue()
+        self.write_queue = DAPQueue()
         self.done = False
         global _server
         _server = self
index eba072147ee9a9c0ba56de3e22d93b474c87df3a..a16b51f7cf52ba46364d9daf1d38149ad020b4be 100644 (file)
@@ -23,6 +23,14 @@ import traceback
 import sys
 
 
+# Adapt to different Queue types.  This is exported for use in other
+# modules as well.
+if sys.version_info[0] == 3 and sys.version_info[1] <= 6:
+    DAPQueue = queue.Queue
+else:
+    DAPQueue = queue.SimpleQueue
+
+
 # The GDB thread, aka the main thread.
 _gdb_thread = threading.current_thread()
 
@@ -158,10 +166,7 @@ def send_gdb_with_response(fn):
     """
     if isinstance(fn, str):
         fn = Invoker(fn)
-    if sys.version_info[0] == 3 and sys.version_info[1] <= 6:
-        result_q = queue.Queue()
-    else:
-        result_q = queue.SimpleQueue()
+    result_q = DAPQueue()
 
     def message():
         try: