aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/hatchet_sdk/clients/event_ts.py
diff options
context:
space:
mode:
authorS. Solomon Darnell2025-03-28 21:52:21 -0500
committerS. Solomon Darnell2025-03-28 21:52:21 -0500
commit4a52a71956a8d46fcb7294ac71734504bb09bcc2 (patch)
treeee3dc5af3b6313e921cd920906356f5d4febc4ed /.venv/lib/python3.12/site-packages/hatchet_sdk/clients/event_ts.py
parentcc961e04ba734dd72309fb548a2f97d67d578813 (diff)
downloadgn-ai-master.tar.gz
two version of R2R are hereHEADmaster
Diffstat (limited to '.venv/lib/python3.12/site-packages/hatchet_sdk/clients/event_ts.py')
-rw-r--r--.venv/lib/python3.12/site-packages/hatchet_sdk/clients/event_ts.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/hatchet_sdk/clients/event_ts.py b/.venv/lib/python3.12/site-packages/hatchet_sdk/clients/event_ts.py
new file mode 100644
index 00000000..1d3c3978
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/hatchet_sdk/clients/event_ts.py
@@ -0,0 +1,28 @@
+import asyncio
+from typing import Any
+
+
+class Event_ts(asyncio.Event):
+ """
+ Event_ts is a subclass of asyncio.Event that allows for thread-safe setting and clearing of the event.
+ """
+
+ def __init__(self, *args, **kwargs):
+ super().__init__(*args, **kwargs)
+ if self._loop is None:
+ self._loop = asyncio.get_event_loop()
+
+ def set(self):
+ if not self._loop.is_closed():
+ self._loop.call_soon_threadsafe(super().set)
+
+ def clear(self):
+ self._loop.call_soon_threadsafe(super().clear)
+
+
+async def read_with_interrupt(listener: Any, interrupt: Event_ts):
+ try:
+ result = await listener.read()
+ return result
+ finally:
+ interrupt.set()