Minor reliability upgrade for large datasets - retry deepcopy (#436)

pull/439/head
dgtlmoon 3 years ago committed by GitHub
parent a89ffffc76
commit 3240ed2339
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -1118,7 +1118,14 @@ def ticker_thread_check_time_launch_checks():
running_uuids.append(t.current_uuid) running_uuids.append(t.current_uuid)
# Re #232 - Deepcopy the data incase it changes while we're iterating through it all # Re #232 - Deepcopy the data incase it changes while we're iterating through it all
while True:
try:
copied_datastore = deepcopy(datastore) copied_datastore = deepcopy(datastore)
except RuntimeError as e:
# RuntimeError: dictionary changed size during iteration
time.sleep(0.1)
else:
break
# Check for watches outside of the time threshold to put in the thread queue. # Check for watches outside of the time threshold to put in the thread queue.
for uuid, watch in copied_datastore.data['watching'].items(): for uuid, watch in copied_datastore.data['watching'].items():

Loading…
Cancel
Save