Skip to content

Commit 2d9f9ce

Browse files
committed
Further reduced change of dictionary size change during loop
1 parent 956c2d2 commit 2d9f9ce

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

src/labthings/core/event.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,22 +45,22 @@ def set(self, timeout=5):
4545
with self._setting_lock:
4646
now = time.time()
4747
remove_keys = set()
48-
for ident, event in self.events.items():
49-
if not event[0].is_set():
48+
for event_key in list(self.events.keys()):
49+
if not self.events[event_key][0].is_set():
5050
# if this client's event is not set, then set it
5151
# also update the last set timestamp to now
52-
event[0].set()
53-
event[1] = now
52+
self.events[event_key][0].set()
53+
self.events[event_key][1] = now
5454
else:
5555
# if the client's event is already set, it means the client
5656
# did not process a previous frame
5757
# if the event stays set for more than `timeout` seconds, then
5858
# assume the client is gone and remove it
59-
if now - event[1] >= timeout:
60-
remove_keys.add(ident)
59+
if now - self.events[event_key][1] >= timeout:
60+
remove_keys.add(event_key)
6161
if remove_keys:
62-
for ident in remove_keys:
63-
del self.events[ident]
62+
for remove_key in remove_keys:
63+
del self.events[remove_key]
6464

6565
def clear(self):
6666
"""Clear frame event, once processed."""

0 commit comments

Comments
 (0)