Skip to content

Commit 5eab74e

Browse files
committed
refactor(core): add locks with default_timouts in documents actions
1 parent 157df87 commit 5eab74e

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

packages/core/src/robotcode/core/documents_manager.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import os
22
import re
3-
import threading
43
from pathlib import Path
54
from typing import (
65
Any,
@@ -13,6 +12,7 @@
1312
Union,
1413
)
1514

15+
from .concurrent import RLock
1616
from .event import event
1717
from .language import LanguageDefinition, language_id_filter
1818
from .lsp.types import DocumentUri
@@ -32,7 +32,7 @@ def __init__(self, languages: List[LanguageDefinition]) -> None:
3232
self.languages = languages
3333

3434
self._documents: Dict[DocumentUri, TextDocument] = {}
35-
self._lock = threading.RLock()
35+
self._lock = RLock(name="DocumentsManager.lock", default_timeout=120)
3636

3737
@property
3838
def documents(self) -> List[TextDocument]:

packages/core/src/robotcode/core/text_document.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import collections
22
import inspect
33
import io
4-
import threading
54
import weakref
65
from typing import (
76
Any,
@@ -17,6 +16,7 @@
1716

1817
from typing_extensions import Self
1918

19+
from robotcode.core.concurrent import RLock
2020
from robotcode.core.event import event
2121
from robotcode.core.lsp.types import DocumentUri, Position, Range
2222
from robotcode.core.uri import Uri
@@ -85,7 +85,7 @@ class CacheEntry:
8585
def __init__(self) -> None:
8686
self.data: Any = None
8787
self.has_data: bool = False
88-
self.lock = threading.RLock()
88+
self.lock = RLock(name="Document.CacheEntry.lock", default_timeout=120)
8989

9090

9191
class TextDocument:
@@ -100,7 +100,7 @@ def __init__(
100100
) -> None:
101101
super().__init__()
102102

103-
self._lock = threading.RLock()
103+
self._lock = RLock(name=f"Document.lock '{document_uri}'", default_timeout=120)
104104
self.document_uri = document_uri
105105
self.uri = Uri(self.document_uri).normalized()
106106
self.language_id = language_id
@@ -110,7 +110,7 @@ def __init__(
110110
self._orig_version = version
111111
self._lines: Optional[List[str]] = None
112112
self._cache: Dict[weakref.ref[Any], CacheEntry] = collections.defaultdict(CacheEntry)
113-
self._data_lock = threading.RLock()
113+
self._data_lock = RLock(name=f"Document.data_lock '{document_uri}'", default_timeout=120)
114114
self._data: weakref.WeakKeyDictionary[Any, Any] = weakref.WeakKeyDictionary()
115115
self.opened_in_editor = False
116116

0 commit comments

Comments
 (0)