Switch from using the threading library to the multiprocessing library because the threading library is very inefficient
Alarm strategies: Change all alarm strategies from returning a list of booleans to returning an integer value for bitmap operations in the logical alarm checks
(Comment by me: one additional potential alternative is returning a set of datetime values for which an event is satisfied, although that could require some changes to the infrastructure. Yet another alternative is changing the array-of-bools idea into a set where <set> == {i for i, event_is_satisfied in enumerate(<original array return>) if event_is_satisfied} or something similar.)
Handler classes: create functions could probably be cached
Provided by Liam:
threading
library to themultiprocessing
library because the threading library is very inefficient<set> == {i for i, event_is_satisfied in enumerate(<original array return>) if event_is_satisfied}
or something similar.)create
functions could probably be cached