IOVSvc: Remove locking from CondSvc::isValidID.
The locking within CondSvc::isValidID is heavily contended in jobs with many threads (32-64). Rework so that we don't need to use locking. Rather than doing a SG lookup each time isValidID is called, we instead build a map from SG key to CondCont instances at the end of initialization. (This is called from CondInputLoader::start). We can then look up the key directly in this map rather then querying SG. Since this map is modified only during START, we don't need any locking.
Showing
- Control/IOVSvc/src/CondInputLoader.cxx 7 additions, 0 deletionsControl/IOVSvc/src/CondInputLoader.cxx
- Control/IOVSvc/src/CondSvc.cxx 39 additions, 8 deletionsControl/IOVSvc/src/CondSvc.cxx
- Control/IOVSvc/src/CondSvc.h 28 additions, 14 deletionsControl/IOVSvc/src/CondSvc.h
- Control/IOVSvc/src/ICondSvcSetupDone.h 32 additions, 0 deletionsControl/IOVSvc/src/ICondSvcSetupDone.h
Loading
Please register or sign in to comment