@@ -626,16 +626,19 @@ async def did_change_watched_files(self, sender: Any, changes: List[FileEvent])
626
626
627
627
def __remove_library_entry (self , entry_key : _LibrariesEntryKey , entry : _LibrariesEntry , now : bool = False ) -> None :
628
628
async def remove (k : _LibrariesEntryKey , e : _LibrariesEntry ) -> None :
629
- if len (e .references ) == 0 or now :
630
- self ._logger .debug (lambda : f"Remove Library Entry { k } " )
631
- async with self ._libaries_lock :
632
- if len (e .references ) == 0 :
633
- e1 = self ._libaries .get (k , None )
634
- if e1 == e :
635
- self ._libaries .pop (k , None )
636
-
637
- await e .invalidate ()
638
- self ._logger .debug (lambda : f"Library Entry { k } removed" )
629
+ try :
630
+ if len (e .references ) == 0 or now :
631
+ self ._logger .debug (lambda : f"Remove Library Entry { k } " )
632
+ async with self ._libaries_lock :
633
+ if len (e .references ) == 0 :
634
+ e1 = self ._libaries .get (k , None )
635
+ if e1 == e :
636
+ self ._libaries .pop (k , None )
637
+
638
+ await e .invalidate ()
639
+ self ._logger .debug (lambda : f"Library Entry { k } removed" )
640
+ finally :
641
+ await self ._library_files_cache .clear ()
639
642
640
643
try :
641
644
if asyncio .get_running_loop ():
@@ -645,37 +648,44 @@ async def remove(k: _LibrariesEntryKey, e: _LibrariesEntry) -> None:
645
648
646
649
def __remove_resource_entry (self , entry_key : _ResourcesEntryKey , entry : _ResourcesEntry , now : bool = False ) -> None :
647
650
async def remove (k : _ResourcesEntryKey , e : _ResourcesEntry ) -> None :
648
- if len (e .references ) == 0 or now :
649
- self ._logger .debug (lambda : f"Remove Resource Entry { k } " )
650
- async with self ._resources_lock :
651
- if len (e .references ) == 0 :
652
- e1 = self ._resources .get (k , None )
653
- if e1 == e :
654
- self ._resources .pop (k , None )
655
-
656
- await e .invalidate ()
657
- self ._logger .debug (lambda : f"Resource Entry { k } removed" )
651
+ try :
652
+ if len (e .references ) == 0 or now :
653
+ self ._logger .debug (lambda : f"Remove Resource Entry { k } " )
654
+ async with self ._resources_lock :
655
+ if len (e .references ) == 0 or now :
656
+ e1 = self ._resources .get (k , None )
657
+ if e1 == e :
658
+ self ._resources .pop (k , None )
659
+
660
+ await e .invalidate ()
661
+ self ._logger .debug (lambda : f"Resource Entry { k } removed" )
662
+ finally :
663
+ await self ._resource_files_cache .clear ()
658
664
659
665
try :
660
666
if asyncio .get_running_loop ():
661
667
create_sub_task (remove (entry_key , entry ))
668
+
662
669
except RuntimeError :
663
670
pass
664
671
665
672
def __remove_variables_entry (
666
673
self , entry_key : _VariablesEntryKey , entry : _VariablesEntry , now : bool = False
667
674
) -> None :
668
675
async def remove (k : _VariablesEntryKey , e : _VariablesEntry ) -> None :
669
- if len (e .references ) == 0 or now :
670
- self ._logger .debug (lambda : f"Remove Variables Entry { k } " )
671
- async with self ._variables_lock :
672
- if len (e .references ) == 0 :
673
- e1 = self ._variables .get (k , None )
674
- if e1 == e :
675
- self ._variables .pop (k , None )
676
-
677
- await e .invalidate ()
678
- self ._logger .debug (lambda : f"Variables Entry { k } removed" )
676
+ try :
677
+ if len (e .references ) == 0 or now :
678
+ self ._logger .debug (lambda : f"Remove Variables Entry { k } " )
679
+ async with self ._variables_lock :
680
+ if len (e .references ) == 0 :
681
+ e1 = self ._variables .get (k , None )
682
+ if e1 == e :
683
+ self ._variables .pop (k , None )
684
+
685
+ await e .invalidate ()
686
+ self ._logger .debug (lambda : f"Variables Entry { k } removed" )
687
+ finally :
688
+ await self ._variables_files_cache .clear ()
679
689
680
690
try :
681
691
if asyncio .get_running_loop ():
0 commit comments