Fix removing temporary debugging data on Windows

This commit is contained in:
Ivan Kravets
2022-04-12 18:17:38 +03:00
parent 81fdd75aac
commit 092f5de231
2 changed files with 10 additions and 6 deletions

View File

@ -172,11 +172,12 @@ def debug_cmd(
signal.signal(signal.SIGINT, signal.SIG_IGN)
loop.run_until_complete(coro)
if IS_WINDOWS:
client.close()
# an issue with `asyncio` executor and STIDIN,
# it cannot be closed gracefully
proc.force_exit()
finally:
del client
client.close()
loop.close()
return True

View File

@ -66,6 +66,14 @@ class DebugClientProcess(DebugBaseProcess):
self._server_process.terminate()
super(DebugClientProcess, self).process_exited()
def close(self):
self._unlock_session()
if self.working_dir and os.path.isdir(self.working_dir):
fs.rmtree(self.working_dir)
def __del__(self):
self.close()
def _kill_previous_session(self):
assert self._session_id
pid = None
@ -94,8 +102,3 @@ class DebugClientProcess(DebugBaseProcess):
return
with ContentCache() as cc:
cc.delete(self._session_id)
def __del__(self):
self._unlock_session()
if self.working_dir and os.path.isdir(self.working_dir):
fs.rmtree(self.working_dir)