Skip to content

Commit 5264b7f

Browse files
committed
correct processpool handling and remove unneeded check_canceled calls
1 parent ec9809e commit 5264b7f

File tree

9 files changed

+14
-19
lines changed

9 files changed

+14
-19
lines changed

robotcode/language_server/common/parts/workspace.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -441,7 +441,8 @@ def remove() -> None:
441441
@_logger.call
442442
async def remove_file_watcher_entry(self, entry: FileWatcherEntry) -> None:
443443
async with self._file_watchers_lock:
444-
self._file_watchers.remove(entry)
444+
if entry in self._file_watchers:
445+
self._file_watchers.remove(entry)
445446

446447
if entry.parent is not None:
447448
entry.parent.child_callbacks.remove(entry.callback) # type: ignore

robotcode/language_server/common/protocol.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -206,13 +206,16 @@ async def on_initialized(sender) -> None: # pragma: no cover, NOSONAR
206206

207207
@rpc_method(name="shutdown", cancelable=False)
208208
@_logger.call
209-
async def shutdown(self, *args: Any, **kwargs: Any) -> None:
209+
async def _shutdown(self, *args: Any, **kwargs: Any) -> None:
210+
if self.shutdown_received:
211+
return
212+
210213
self.shutdown_received = True
211214

212215
try:
213216
await asyncio.wait_for(self.cancel_all_received_request(), 1)
214-
except BaseException: # NOSONAR
215-
pass
217+
except BaseException as e: # NOSONAR
218+
self._logger.exception(e)
216219

217220
await self.on_shutdown(self)
218221

robotcode/language_server/common/text_document.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from types import MethodType
77
from typing import Any, Awaitable, Callable, Dict, List, Optional, TypeVar, Union, cast
88

9-
from ...utils.async_tools import Lock, check_canceled, create_sub_task
9+
from ...utils.async_tools import Lock, create_sub_task
1010
from ...utils.logging import LoggingDescriptor
1111
from ...utils.uri import Uri
1212
from .lsp_types import DocumentUri, Range
@@ -191,7 +191,6 @@ async def get_cache(
191191

192192
if e is None:
193193
async with self._lock:
194-
await check_canceled()
195194
e = self._cache.get(reference, None)
196195
if e is None:
197196

@@ -201,7 +200,6 @@ async def get_cache(
201200

202201
if e.data is None:
203202
async with e.lock:
204-
await check_canceled()
205203
if e.data is None:
206204
e.data = await entry(self, *args, **kwargs) # type: ignore
207205

robotcode/language_server/robotframework/diagnostics/analyzer.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import asyncio
55
from typing import List, Optional, cast
66

7-
from ....utils.async_tools import CancelationToken, check_canceled
7+
from ....utils.async_tools import CancelationToken
88
from ....utils.uri import Uri
99
from ...common.lsp_types import (
1010
Diagnostic,
@@ -40,8 +40,6 @@ async def get(
4040
return self._results
4141

4242
async def visit(self, node: ast.AST) -> None:
43-
await check_canceled()
44-
4543
await super().visit(node)
4644

4745
async def _analyze_keyword_call(

robotcode/language_server/robotframework/diagnostics/imports_manager.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -449,8 +449,6 @@ async def get_libdoc(self) -> VariablesDoc:
449449
class ImportsManager:
450450
_logger = LoggingDescriptor()
451451

452-
process_pool = get_process_pool()
453-
454452
def __init__(
455453
self, parent_protocol: RobotLanguageServerProtocol, folder: Uri, config: Optional[RobotConfig]
456454
) -> None:
@@ -468,6 +466,8 @@ def __init__(
468466
self.parent_protocol.documents.did_change.add(self.resource_document_changed)
469467
self._command_line_variables: Optional[List[VariableDefinition]] = None
470468

469+
self.process_pool = get_process_pool()
470+
471471
@_logger.call
472472
def get_command_line_variables(self) -> List[VariableDefinition]:
473473
if self._command_line_variables is None:

robotcode/language_server/robotframework/diagnostics/namespace.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
)
2424

2525
from ....utils.async_itertools import async_chain
26-
from ....utils.async_tools import CancelationToken, Lock, check_canceled
26+
from ....utils.async_tools import CancelationToken, Lock
2727
from ....utils.logging import LoggingDescriptor
2828
from ....utils.uri import Uri
2929
from ...common.lsp_types import (
@@ -1105,8 +1105,6 @@ async def _analyze(self, cancelation_token: Optional[CancelationToken] = None) -
11051105
try:
11061106
result = await Analyzer().get(self.model, self, cancelation_token)
11071107

1108-
await check_canceled()
1109-
11101108
self._diagnostics += result
11111109

11121110
lib_doc = await self.get_library_doc()

robotcode/language_server/robotframework/parts/diagnostics.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,8 +145,6 @@ async def collect_walk_model_errors(
145145

146146
result: List[Diagnostic] = []
147147
async for node in iter_nodes(model):
148-
await check_canceled()
149-
150148
error = node.error if isinstance(node, HasError) else None
151149
if error is not None:
152150
result.append(self._create_error_from_node(node, error))

robotcode/language_server/robotframework/parts/robocop_diagnostics.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ async def collect(
8080

8181
await check_canceled()
8282

83-
with io.StringIO("") as output:
83+
with io.StringIO() as output:
8484
config = Config(str(workspace_folder.uri.to_path()))
8585

8686
config.exec_dir = str(workspace_folder.uri.to_path())

robotcode/language_server/robotframework/utils/process_pool.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ def get_process_pool() -> ProcessPoolExecutor:
3232
if _process_pool is None:
3333
_process_pool = ProcessPoolExecutor(max_workers=PROCESS_POOL_MAX_WORKERS, initializer=_init_pool)
3434
atexit.register(_terminate)
35-
signal.signal(signal.SIGTERM, _terminate)
3635

3736
try:
3837
_process_pool.submit(_dummy_first_run_pool).result(5)

0 commit comments

Comments
 (0)