Skip to content

Commit b6eaf45

Browse files
committed
Update
[ghstack-poisoned]
1 parent 60f61bd commit b6eaf45

File tree

1 file changed

+13
-4
lines changed
  • torchrl/modules/inference_server

1 file changed

+13
-4
lines changed

torchrl/modules/inference_server/_mp.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,16 @@ def __init__(self, client: _MPInferenceClient, req_id: int):
3333
self._req_id = req_id
3434
self._result: Any = _SENTINEL
3535

36+
def done(self) -> bool:
37+
"""Return ``True`` if the result is available without blocking."""
38+
if self._result is not _SENTINEL:
39+
return True
40+
try:
41+
self._result = self._client._get_result(self._req_id, timeout=0)
42+
except queue.Empty:
43+
return False
44+
return True
45+
3646
def result(self, timeout: float | None = None) -> TensorDictBase:
3747
"""Block until the result is available.
3848
@@ -44,10 +54,9 @@ def result(self, timeout: float | None = None) -> TensorDictBase:
4454
Exception: if the server set an exception instead of a result.
4555
"""
4656
if self._result is _SENTINEL:
47-
item = self._client._get_result(self._req_id, timeout=timeout)
48-
if isinstance(item, BaseException):
49-
raise item
50-
self._result = item
57+
self._result = self._client._get_result(self._req_id, timeout=timeout)
58+
if isinstance(self._result, BaseException):
59+
raise self._result
5160
return self._result
5261

5362

0 commit comments

Comments
 (0)