We are following the C++11 convention which is we only guarantee thread safety of an object if all threads talking to that object are using 'const' member functions. If one or more threads uses a 'non-const' all bets are off. Given that the EventSetup only gives back const instances of objects this rule works for us.