19 #ifndef __XRD_CL_JOB_MANAGER_HH__ 20 #define __XRD_CL_JOB_MANAGER_HH__ 44 virtual void Run(
void *arg ) = 0;
104 pthread_t thread = pthread_self();
105 std::vector<pthread_t>::iterator itr =
130 #endif // __XRD_CL_ANY_OBJECT_HH__ bool Finalize()
Finalize the job manager, clear the queues.
A synchronized queue.
Definition: XrdClJobManager.hh:50
bool Stop()
Stop the workers.
JobManager(uint32_t workers)
Constructor.
Definition: XrdClJobManager.hh:56
void StopWorkers(uint32_t n)
Stop all workers up to n'th.
JobHelper(Job *j=0, void *a=0)
Definition: XrdClJobManager.hh:118
bool Initialize()
Initialize the job manager.
std::vector< pthread_t > pWorkers
Definition: XrdClJobManager.hh:123
A synchronized queue.
Definition: XrdClSyncQueue.hh:32
void QueueJob(Job *job, void *arg=0)
Add a job to be run.
Definition: XrdClJobManager.hh:92
SyncQueue< JobHelper > pJobs
Definition: XrdClJobManager.hh:124
Definition: XrdSysPthread.hh:165
XrdSysMutex pMutex
Definition: XrdClJobManager.hh:125
Definition: XrdClAnyObject.hh:25
virtual void Run(void *arg)=0
The job logic.
bool Start()
Start the workers.
bool IsWorker()
Definition: XrdClJobManager.hh:102
~JobManager()
Destructor.
Definition: XrdClJobManager.hh:65
void * arg
Definition: XrdClJobManager.hh:120
Interface for a job to be run by the job manager.
Definition: XrdClJobManager.hh:33
Definition: XrdClJobManager.hh:116
bool pRunning
Definition: XrdClJobManager.hh:126
virtual ~Job()
Virtual destructor.
Definition: XrdClJobManager.hh:39
Job * job
Definition: XrdClJobManager.hh:119
void RunJobs()
Run the jobs.