Refactor DAP queue handling

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.
This commit is contained in:
Tom Tromey 2023-11-07 09:16:48 -07:00
parent d80aef339f
commit 587a1031aa
2 changed files with 11 additions and 10 deletions

View File

@ -16,12 +16,11 @@
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

View 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: