New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make InitRootHandlers safe for the threaded framework #853
Conversation
InitRootHandlers was originally calling ROOT's 'SetErrorHandler' function during event processing. That operation is not thread safe. This was done solely to allow ROOT warning messages to be temporarily ignored. We now always keep the same error handler but now signal the request to ignore warnings via a thread local bool. To better encapsulate this behavior, RootHandlers was changed to use a function which takes a functor as an argument and then wraps the temporary disabling of warnings via a sentry. Only RootOutputTree actually makes use of this facility.
A new Pull Request was created by @Dr15Jones (Chris Jones) for CMSSW_7_0_X. Make InitRootHandlers safe for the threaded framework It involves the following packages: FWCore/Utilities @Dr15Jones, @ktf can you please review it and eventually sign? Thanks. |
+1 |
This pull request is fully signed and it will be integrated in one of the next IBs unless changes or unless it breaks tests. @ktf can you please take care of it? |
@nclopezo can you please test this? You should probably give precedence to pull requests which are completely signed. |
+1 https://cmssdt.cern.ch/jenkins/job/Pull-Request-Integration/ARCHITECTURE=slc5_amd64_gcc481/540/console Ok I will give them precedence. |
This pull request is fully signed and it will be integrated in one of the next IBs unless changes or unless it breaks tests. @ktf can you please take care of it? |
@ktf ping |
Threaded framework cleanups -- Make InitRootHandlers safe for the threaded framework
I missed david's message. Sorry about that. Should be merged now. |
InitRootHandlers was originally calling ROOT's 'SetErrorHandler' function during event processing. That operation is not thread safe. This was done solely to allow ROOT warning messages to be temporarily ignored. We now always keep the same error handler but now signal the request to ignore warnings via a thread local bool. To better encapsulate this behavior, RootHandlers was changed to use a function which takes a functor as an argument and then wraps the temporary disabling of warnings via a sentry. Only RootOutputTree actually makes use of this facility.