fix: profiler reactor initialization #1058
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
The
get_cpu_profiler()
function which is called at the module-level in multiple places indirectly installed the Twisted reactor by callingLoopingCall()
. This meant that when a module with a profiler was imported before reactor initialization (ininitialize_global_reactor
), aReactorAlreadyInstalledError
could be thrown.This PR prevents the profiler from indirectly installing a reactor before it has been initialized.
Acceptance Criteria
SimpleCPUProfiler
so it does not create aLoopingCall
in its__init__
.get_cpu_profiler()
.Checklist
master
, confirm this code is production-ready and can be included in future releases as soon as it gets merged