From a1dcecf99faa565f6bb49bcfcfd91da5e465399b Mon Sep 17 00:00:00 2001 From: Eric Snow Date: Thu, 1 Mar 2018 01:13:48 +0000 Subject: [PATCH] Do not kill-on-close during tests. --- ptvsd/wrapper.py | 10 ++++++---- tests/helpers/pydevd/_fake.py | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/ptvsd/wrapper.py b/ptvsd/wrapper.py index 24d15dc7..062ea90e 100644 --- a/ptvsd/wrapper.py +++ b/ptvsd/wrapper.py @@ -402,12 +402,13 @@ class VSCodeMessageProcessor(ipcjson.SocketIO, ipcjson.IpcChannel): protocol. """ - def __init__(self, socket, pydevd, logfile=None): + def __init__(self, socket, pydevd, logfile=None, killonclose=True): super(VSCodeMessageProcessor, self).__init__(socket=socket, own_socket=False, logfile=logfile) self.socket = socket self.pydevd = pydevd + self.killonclose = killonclose self.stack_traces = {} self.stack_traces_lock = threading.Lock() self.active_exceptions = {} @@ -563,7 +564,7 @@ class VSCodeMessageProcessor(ipcjson.SocketIO, ipcjson.IpcChannel): self.disconnect_request_event.set() killProcess = not self._closed self.close() - if killProcess: + if killProcess and self.killonclose: os.kill(os.getpid(), signal.SIGTERM) else: self.send_response(request) @@ -1032,11 +1033,12 @@ def _new_sock(): return sock -def _start(client, server): +def _start(client, server, killonclose=True): name = 'ptvsd.Client' if server is None else 'ptvsd.Server' pydevd = PydevdSocket(lambda *args: proc.on_pydevd_event(*args)) - proc = VSCodeMessageProcessor(client, pydevd) + proc = VSCodeMessageProcessor(client, pydevd, + killonclose=killonclose) server_thread = threading.Thread(target=proc.process_messages, name=name) diff --git a/tests/helpers/pydevd/_fake.py b/tests/helpers/pydevd/_fake.py index d5e364f5..1c353628 100644 --- a/tests/helpers/pydevd/_fake.py +++ b/tests/helpers/pydevd/_fake.py @@ -19,7 +19,7 @@ def _bind(address): def connect(_connect=connect): client, server = _connect() - pydevd, _, _ = _ptvsd._start(client, server) + pydevd, _, _ = _ptvsd._start(client, server, killonclose=False) return socket.Connection(pydevd, server) return connect, remote