Skip to content

Commit 0502f76

Browse files
jczykierglatosinski
authored andcommitted
[#99078] trace_handler: Tore down interceptor proxy
Signed-off-by: Jedrzej Czykier <jczykier@antmicro.com>
1 parent 7e8e4ef commit 0502f76

1 file changed

Lines changed: 27 additions & 3 deletions

File tree

server/handlers/trace_handler.py

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -161,12 +161,17 @@ def __init__(
161161
self.tvm_prefix_to_model_id = {}
162162

163163
self.pending_events = []
164+
self.pending_metadata = []
164165
self.trace_threads = {}
165166
self.continuous_streaming = False
166167
self.bt2_thread = None
167168
self.bt2_thread_stop = False
168169
self.trace_lock = Lock()
169170
self.msg_it = None
171+
self.async_q = None
172+
self.interceptor_server = None
173+
self.interceptor_task = None
174+
self.tef_task = None
170175

171176
self._metadata_tmp = None
172177
self.metadata_dir = None
@@ -431,19 +436,38 @@ async def _live_trace_cleanup(self) -> bool:
431436
bool
432437
Cleanup status.
433438
"""
439+
if self.interceptor_server is not None:
440+
self.interceptor_server.close()
441+
await self.interceptor_server.wait_closed()
442+
self.interceptor_server = None
443+
444+
if self.interceptor_task is not None:
445+
self.interceptor_task.cancel()
446+
try:
447+
await self.interceptor_task
448+
except asyncio.CancelledError:
449+
pass
450+
self.interceptor_task = None
451+
434452
if self.bt2_thread:
435453
self.bt2_thread_stop = True
436454
await asyncio.get_event_loop().run_in_executor(None, self.bt2_thread.join)
437-
self.tef_task.cancel()
438-
await self.tef_task
455+
if self.tef_task is not None:
456+
self.tef_task.cancel()
457+
try:
458+
await self.tef_task
459+
except asyncio.CancelledError:
460+
pass
439461

440462
self.pending_events = []
463+
self.pending_metadata = []
441464
self.bt2_thread = None
442465
self.trace_events = []
443466
self.tef_task = None
444467
self.bt2_thread_stop = False
445468
self.continuous_streaming = False
446469
self.msg_it = None
470+
self.async_q = None
447471
gc.collect()
448472

449473
if self._metadata_tmp is not None:
@@ -612,7 +636,7 @@ async def _execute_reset(self):
612636
self.pending_metadata.clear()
613637
self.trace_threads.clear()
614638

615-
while not self.async_q.empty():
639+
while self.async_q is not None and not self.async_q.empty():
616640
try:
617641
self.async_q.get_nowait()
618642
except asyncio.QueueEmpty:

0 commit comments

Comments
 (0)