ThreadInitTask.h
Go to the documentation of this file.
1 #ifndef GAUDIHIVE_THREADINITTASK_H
2 #define GAUDIHIVE_THREADINITTASK_H
3 
4 #include "GaudiKernel/SmartIF.h"
8 
9 #include <vector>
10 #include <string>
11 #include "tbb/task.h"
12 #include "boost/thread.hpp"
13 
14 class ThreadInitTask: virtual public tbb::task
15 
16 {
17 
18 public:
20  boost::barrier* b,
22  bool terminate=false):
23  m_tools(tools), m_barrier(b), m_serviceLocator(svcLocator),
24  m_terminate(terminate){};
25 
26  virtual tbb::task* execute();
27 
28  static bool execFailed() { return m_execFailed; }
29 
30 private:
31 
33 
34  boost::barrier *m_barrier;
37 
39 
40 };
41 
42 #endif
ThreadInitTask(ToolHandleArray< IThreadInitTool > &tools, boost::barrier *b, ISvcLocator *svcLocator, bool terminate=false)
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
Definition: ISvcLocator.h:25
SmartIF< ISvcLocator > m_serviceLocator
static std::atomic< bool > m_execFailed
ToolHandleArray< IThreadInitTool > & m_tools
GAUDI_API ISvcLocator * svcLocator()
static bool execFailed()
virtual tbb::task * execute()
boost::barrier * m_barrier