11 namespace Concurrency {
27 <<
" state: " << ( m_terminate ?
"terminate" :
"initialize" ) <<
endmsg;
30 log <<
MSG::WARNING <<
"thread initialization has already been done on thread " <<
std::hex << pthread_self()
34 if ( m_tools.retrieve().isFailure() ) {
35 log <<
MSG::ERROR <<
"unable to retrieve ToolHandleArray " << m_tools <<
endmsg;
39 if ( m_tools.size() == 0 ) {
47 log <<
MSG::INFO <<
"Not calling terminateThread for thread 0x" <<
std::hex << pthread_self()
48 <<
" as it has not been initialized" <<
endmsg;
51 for (
auto& t : m_tools ) {
65 <<
" threw GaudiException: " << exc <<
endmsg;
69 <<
" threw std::exception: " << exc.
what() <<
endmsg;
73 <<
" threw unknown exception" <<
endmsg;
79 m_tools.release().ignore();
83 if ( m_barrier != 0 ) {
Definition of the MsgStream class used to transmit messages.
tbb::task * execute() override
Execute the task.
Define general base for Gaudi exception.
static std::atomic< bool > m_execFailed
thread_local bool ThreadInitDone
MSG::Level level() const
Retrieve output level.
Header file for std:chrono::duration-based Counters.
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.