4 #include "hep_concurrency/RecursiveMutex.h" 5 #include "hep_concurrency/tsan.h" 11 RecursiveMutex* InputSourceMutexSentry::inputSourceMutex_{
12 new RecursiveMutex{
"art::inputSourceMutex_"}};
17 static mutex guard_mutex;
18 lock_guard sentry{guard_mutex};
19 inputSourceMutex_ =
new RecursiveMutex{
"art::inputSourceMutex_"};
20 return inputSourceMutex_;
24 InputSourceMutexSentry::shutdown()
26 ANNOTATE_THREAD_IGNORE_BEGIN;
27 delete inputSourceMutex_;
28 inputSourceMutex_ =
nullptr;
29 ANNOTATE_THREAD_IGNORE_END;
37 InputSourceMutexSentry::shutdown();
54 InputSourceMutexSentry::~InputSourceMutexSentry() noexcept =
default;
57 : sentry_{(inputSourceMutex_ ==
nullptr) ? *
startup() : *inputSourceMutex_,
~AutoInputSourceMutexSentryShutdown()
AutoInputSourceMutexSentryShutdown autoInputSourceMutexSentryShutdown
bool startup
Parse arguments #.