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
Fix a race condition in edm::Ref #9648
Conversation
The code which was used to dereference an edm::Ref had a race condition where one thread could have updated the cache right after another thread checked to see if the cache had been updated. This would lead to productGetter() returning a null value which was then used to attempt a function call. The code now only calls productGetter() once and handles the case where it was changed since the last check.
A new Pull Request was created by @Dr15Jones (Chris Jones) for CMSSW_7_5_X. Fix a race condition in edm::Ref It involves the following packages: DataFormats/Common @cmsbuild, @Dr15Jones can you please review it and eventually sign? Thanks. |
please test |
@davidlange6 This isn't a problem now but will be a problem in the future when we are using more than one thread per Event. Therefore this doesn't have to go into 7_5. |
The tests are being triggered in jenkins. |
+1 |
This pull request is fully signed and it will be integrated in one of the next CMSSW_7_5_X IBs (tests are also fine). This pull request requires discussion in the ORP meeting before it's merged. @davidlange6, @Degano, @smuzaffar |
+1 |
Fix a race condition in edm::Ref
The code which was used to dereference an edm::Ref had a race condition where one thread could have updated the cache right after another thread checked to see if the cache had been updated. This would lead to productGetter() returning a null value which was then used to attempt a function call. The code now only calls productGetter() once and handles the case where it was changed since the last check.