@@ -358,13 +358,14 @@ def _delete_parent_directory(pathname):
358358 return FileUtilities .extended_path (os .path .dirname (path ))
359359
360360
361- def _close_delete_parent_lock ():
361+ def _close_delete_parent_lock (log = True ):
362362 """Close the parent lock handle."""
363363 global _delete_parent_lock_handle
364364 global _delete_parent_lock_key
365365 if _delete_parent_lock_handle is not None :
366- logger .debug ('Closing parent lock handle for %s' ,
367- _delete_parent_lock_key )
366+ if log :
367+ logger .debug ('Closing parent lock handle for %s' ,
368+ _delete_parent_lock_key )
368369 win32file .CloseHandle (_delete_parent_lock_handle )
369370 _delete_parent_lock_handle = None
370371 _delete_parent_lock_key = None
@@ -463,7 +464,7 @@ def with_parent_lock(pathname, func, *args, **kwargs):
463464
464465
465466if IS_WINDOWS :
466- atexit .register (_close_delete_parent_lock )
467+ atexit .register (_close_delete_parent_lock , False )
467468
468469
469470def delete_locked_file (pathname ):
@@ -1289,6 +1290,7 @@ def __init__(self, group=None, name=None, args=(), kwargs=None):
12891290 self ._splash_screen_width = None
12901291 self ._startup_error = None
12911292 self ._thread_id = None
1293+ self ._closed = False
12921294
12931295 def start (self ):
12941296 if self .ident is not None :
@@ -1335,6 +1337,10 @@ def join(self, timeout=None):
13351337 self .close (timeout )
13361338
13371339 def close (self , timeout = None ):
1340+ if self ._closed :
1341+ return
1342+ self ._closed = True
1343+ atexit .unregister (self .close )
13381344 if not self .is_alive ():
13391345 return
13401346 splash_delay = get_splash_screen_delay_seconds ()
0 commit comments