summaryrefslogtreecommitdiff
path: root/replacement_poll_selector.py
diff options
context:
space:
mode:
Diffstat (limited to 'replacement_poll_selector.py')
-rw-r--r--replacement_poll_selector.py41
1 files changed, 0 insertions, 41 deletions
diff --git a/replacement_poll_selector.py b/replacement_poll_selector.py
deleted file mode 100644
index 0813a66..0000000
--- a/replacement_poll_selector.py
+++ /dev/null
@@ -1,41 +0,0 @@
-import selectors
-import sys
-import threading
-import time
-from typing import List, Optional, Tuple
-
-from mini_scalene import MiniScalene
-
-
-@MiniScalene.shim
-def replacement_poll_selector(mini_scalene: MiniScalene) -> None:
- """
- A replacement for selectors.PollSelector that
- periodically wakes up to accept signals
- """
-
- class ReplacementPollSelector(selectors.PollSelector):
- def select(
- self, timeout: Optional[float] = -1
- ) -> List[Tuple[selectors.SelectorKey, int]]:
- tident = threading.get_ident()
- start_time = time.perf_counter()
- if not timeout or timeout < 0:
- interval = sys.getswitchinterval()
- else:
- interval = min(timeout, sys.getswitchinterval())
- while True:
- scalene.set_thread_sleeping(tident)
- selected = super().select(interval)
- scalene.reset_thread_sleeping(tident)
- if selected or timeout == 0:
- return selected
- end_time = time.perf_counter()
- if timeout and timeout != -1:
- if end_time - start_time >= timeout:
- return [] # None
-
- ReplacementPollSelector.__qualname__ = (
- "replacement_poll_selector.ReplacementPollSelector"
- )
- selectors.PollSelector = ReplacementPollSelector # type: ignore