Fix threading issues in HLT prescale loading and improve error handling
(Probably) fix ATR-23670, i.e. a threading issue and the potentially harmful default behaviour of downstream code upon these issues. Tested locally, but the issue is not reproducible this way and the final validation will happen in the next Technical Run.
Details:
-
[L1|HLT]PrescaleCondAlg
: Use thread-safeinsert
to add elements totbb::concurrent_unordered_map
instead ofoperator[]
+ assignment which is unsafe (not clear from TBB documentation, but this is the second case proving this after !40604 (merged)). -
PrescalingTool
: Change the default value ofKeepUnknownChains
toFalse
and the default prescale value to -1. In caseKeepUnknownChains==False
, print an error when a chain is not found in the prescale set.