File tree Expand file tree Collapse file tree 4 files changed +24
-4
lines changed
Expand file tree Collapse file tree 4 files changed +24
-4
lines changed Original file line number Diff line number Diff line change 11[metadata]
2- license_file = LICENSE
2+ license_files = LICENSE
33
44[versioneer]
55VCS = git
@@ -10,4 +10,4 @@ tag_prefix = v
1010parentdir_prefix = debugpy-
1111
1212[aliases]
13- test = pytest
13+ test = pytest
Original file line number Diff line number Diff line change @@ -470,12 +470,16 @@ def attach_request(self, request):
470470 )
471471
472472 if listen != ():
473+ if servers .is_serving ():
474+ raise request .isnt_valid ('Multiple concurrent "listen" sessions are not supported' )
473475 host = listen ("host" , "127.0.0.1" )
474476 port = listen ("port" , int )
475477 adapter .access_token = None
476478 host , port = servers .serve (host , port )
477479 else :
478- host , port = servers .serve ()
480+ if not servers .is_serving ():
481+ servers .serve ()
482+ host , port = servers .listener .getsockname ()
479483
480484 # There are four distinct possibilities here.
481485 #
Original file line number Diff line number Diff line change 1919access_token = None
2020"""Access token used to authenticate with the servers."""
2121
22+ listener = None
23+ """Listener socket that accepts server connections."""
24+
2225_lock = threading .RLock ()
2326
2427_connections = []
@@ -433,9 +436,16 @@ def serve(host="127.0.0.1", port=0):
433436 return listener .getsockname ()
434437
435438
439+ def is_serving ():
440+ return listener is not None
441+
442+
436443def stop_serving ():
444+ global listener
437445 try :
438- listener .close ()
446+ if listener is not None :
447+ listener .close ()
448+ listener = None
439449 except Exception :
440450 log .swallow_exception (level = "warning" )
441451
Original file line number Diff line number Diff line change @@ -339,6 +339,7 @@ def report_paths(get_paths, label=None):
339339
340340 report_paths ("os.__file__" )
341341 report_paths ("threading.__file__" )
342+ report_paths ("debugpy.__file__" )
342343
343344 result = "" .join (result ).rstrip ("\n " )
344345 info ("{0}" , result )
@@ -376,3 +377,8 @@ def _vars(*names): # pragma: no cover
376377def _stack (): # pragma: no cover
377378 stack = "\n " .join (traceback .format_stack ())
378379 warning ("$STACK:\n \n {0}" , stack )
380+
381+
382+ def _threads (): # pragma: no cover
383+ output = "\n " .join ([str (t ) for t in threading .enumerate ()])
384+ warning ("$THREADS:\n \n {0}" , output )
You can’t perform that action at this time.
0 commit comments