File tree 4 files changed +24
-4
lines changed
4 files changed +24
-4
lines changed Original file line number Diff line number Diff line change 1
1
[metadata]
2
- license_file = LICENSE
2
+ license_files = LICENSE
3
3
4
4
[versioneer]
5
5
VCS = git
@@ -10,4 +10,4 @@ tag_prefix = v
10
10
parentdir_prefix = debugpy-
11
11
12
12
[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):
470
470
)
471
471
472
472
if listen != ():
473
+ if servers .is_serving ():
474
+ raise request .isnt_valid ('Multiple concurrent "listen" sessions are not supported' )
473
475
host = listen ("host" , "127.0.0.1" )
474
476
port = listen ("port" , int )
475
477
adapter .access_token = None
476
478
host , port = servers .serve (host , port )
477
479
else :
478
- host , port = servers .serve ()
480
+ if not servers .is_serving ():
481
+ servers .serve ()
482
+ host , port = servers .listener .getsockname ()
479
483
480
484
# There are four distinct possibilities here.
481
485
#
Original file line number Diff line number Diff line change 19
19
access_token = None
20
20
"""Access token used to authenticate with the servers."""
21
21
22
+ listener = None
23
+ """Listener socket that accepts server connections."""
24
+
22
25
_lock = threading .RLock ()
23
26
24
27
_connections = []
@@ -433,9 +436,16 @@ def serve(host="127.0.0.1", port=0):
433
436
return listener .getsockname ()
434
437
435
438
439
+ def is_serving ():
440
+ return listener is not None
441
+
442
+
436
443
def stop_serving ():
444
+ global listener
437
445
try :
438
- listener .close ()
446
+ if listener is not None :
447
+ listener .close ()
448
+ listener = None
439
449
except Exception :
440
450
log .swallow_exception (level = "warning" )
441
451
Original file line number Diff line number Diff line change @@ -339,6 +339,7 @@ def report_paths(get_paths, label=None):
339
339
340
340
report_paths ("os.__file__" )
341
341
report_paths ("threading.__file__" )
342
+ report_paths ("debugpy.__file__" )
342
343
343
344
result = "" .join (result ).rstrip ("\n " )
344
345
info ("{0}" , result )
@@ -376,3 +377,8 @@ def _vars(*names): # pragma: no cover
376
377
def _stack (): # pragma: no cover
377
378
stack = "\n " .join (traceback .format_stack ())
378
379
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