diff --git a/rnsh/helpers.py b/rnsh/helpers.py index 2fc757e..664799a 100644 --- a/rnsh/helpers.py +++ b/rnsh/helpers.py @@ -19,7 +19,7 @@ def __init__(self, target_period: float): def next_sleep_time(self) -> float: old_last_wake = self.last_wake self.last_wake = time.time() - next_wake = max(old_last_wake + 0.01, self.last_wake) + next_wake = max(old_last_wake + self.target_period, self.last_wake) sleep_for = next_wake - self.last_wake return sleep_for if sleep_for > 0 else 0 diff --git a/rnsh/listener.py b/rnsh/listener.py index 5299429..630e30b 100644 --- a/rnsh/listener.py +++ b/rnsh/listener.py @@ -225,7 +225,7 @@ def link_established(lnk: RNS.Link): _destination.announce() last_announce = time.time() - sleeper = helpers.SleepRate(0.01) + sleeper = helpers.SleepRate(0.25) try: while not await _check_finished(): diff --git a/rnsh/session.py b/rnsh/session.py index 4268a20..f64edec 100644 --- a/rnsh/session.py +++ b/rnsh/session.py @@ -192,13 +192,13 @@ def _initiator_identified(self, outlet, identity): self._set_state(LSState.LSSTATE_WAIT_VERS) @classmethod - async def pump_all(cls) -> True: + async def pump_all(cls) -> bool: processed_any = False for session in cls.sessions: processed = session.pump() processed_any = processed_any or processed await asyncio.sleep(0) - + return processed_any @classmethod async def terminate_all(cls, reason: str):