File tree Expand file tree Collapse file tree 2 files changed +13
-3
lines changed
language_server/robotframework/diagnostics Expand file tree Collapse file tree 2 files changed +13
-3
lines changed Original file line number Diff line number Diff line change @@ -600,6 +600,8 @@ def __init__(
600
600
self .imports_manager .resources_changed .add (self .resources_changed )
601
601
self .imports_manager .variables_changed .add (self .variables_changed )
602
602
603
+ self ._in_initialize = False
604
+
603
605
@async_event
604
606
async def has_invalidated (sender ) -> None : # NOSONAR
605
607
...
@@ -678,6 +680,7 @@ async def invalidate(self) -> None:
678
680
self ._variable_references = {}
679
681
680
682
self ._finder = None
683
+ self ._in_initialize = False
681
684
682
685
await self ._reset_global_variables ()
683
686
@@ -767,6 +770,12 @@ async def ensure_initialized(self) -> bool:
767
770
imports_changed = False
768
771
async with self ._initialize_lock :
769
772
if not self ._initialized :
773
+
774
+ if self ._in_initialize :
775
+ self ._logger .critical (f"already initialized { self .document } " )
776
+
777
+ self ._in_initialize = True
778
+
770
779
try :
771
780
self ._logger .debug (f"ensure_initialized -> initialize { self .document } " )
772
781
@@ -834,6 +843,8 @@ async def ensure_initialized(self) -> bool:
834
843
835
844
await self .invalidate ()
836
845
raise
846
+ finally :
847
+ self ._in_initialize = False
837
848
838
849
if self ._initialized :
839
850
await self .has_initialized (self )
Original file line number Diff line number Diff line change @@ -583,7 +583,7 @@ async def release(self) -> None:
583
583
await super ().release ()
584
584
585
585
586
- class NewLock :
586
+ class Lock :
587
587
def __init__ (self ) -> None :
588
588
self ._block = BoundedSemaphore (value = 1 )
589
589
@@ -609,7 +609,7 @@ async def __aexit__(
609
609
await self .release ()
610
610
611
611
612
- class Lock :
612
+ class OldLock :
613
613
"""Threadsafe version of an async Lock."""
614
614
615
615
def __init__ (self ) -> None :
@@ -638,7 +638,6 @@ async def __inner_lock(self) -> AsyncGenerator[Any, None]:
638
638
while not b :
639
639
await asyncio .sleep (0 )
640
640
b = self ._lock .acquire (blocking = False )
641
-
642
641
try :
643
642
yield None
644
643
finally :
You can’t perform that action at this time.
0 commit comments