xrootd
Loading...
Searching...
No Matches
Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
XrdCl::JobManager Class Reference

A synchronized queue. More...

#include <XrdClJobManager.hh>

Collaboration diagram for XrdCl::JobManager:
Collaboration graph
[legend]

Classes

struct  JobHelper
 

Public Member Functions

 JobManager (uint32_t workers)
 Constructor.
 
 ~JobManager ()
 Destructor.
 
bool Initialize ()
 Initialize the job manager.
 
bool Finalize ()
 Finalize the job manager, clear the queues.
 
bool Start ()
 Start the workers.
 
bool Stop ()
 Stop the workers.
 
void QueueJob (Job *job, void *arg=0)
 Add a job to be run.
 
void RunJobs ()
 Run the jobs.
 
bool IsWorker ()
 

Private Member Functions

void StopWorkers (uint32_t n)
 Stop all workers up to n'th.
 

Private Attributes

std::vector< pthread_t > pWorkers
 
SyncQueue< JobHelperpJobs
 
XrdSysMutex pMutex
 
bool pRunning
 

Detailed Description

A synchronized queue.

Constructor & Destructor Documentation

◆ JobManager()

XrdCl::JobManager::JobManager ( uint32_t  workers)
inline

Constructor.

References pRunning, and pWorkers.

◆ ~JobManager()

XrdCl::JobManager::~JobManager ( )
inline

Destructor.

Member Function Documentation

◆ Finalize()

bool XrdCl::JobManager::Finalize ( )

Finalize the job manager, clear the queues.

Referenced by XrdEc::ThreadPool::~ThreadPool().

◆ Initialize()

bool XrdCl::JobManager::Initialize ( )

Initialize the job manager.

Referenced by XrdEc::ThreadPool::ThreadPool().

◆ IsWorker()

bool XrdCl::JobManager::IsWorker ( )
inline

References pWorkers.

◆ QueueJob()

void XrdCl::JobManager::QueueJob ( Job job,
void *  arg = 0 
)
inline

◆ RunJobs()

void XrdCl::JobManager::RunJobs ( )

Run the jobs.

◆ Start()

bool XrdCl::JobManager::Start ( )

Start the workers.

Referenced by XrdEc::ThreadPool::ThreadPool().

◆ Stop()

bool XrdCl::JobManager::Stop ( )

Stop the workers.

Referenced by XrdEc::ThreadPool::~ThreadPool().

◆ StopWorkers()

void XrdCl::JobManager::StopWorkers ( uint32_t  n)
private

Stop all workers up to n'th.

Member Data Documentation

◆ pJobs

SyncQueue<JobHelper> XrdCl::JobManager::pJobs
private

Referenced by QueueJob().

◆ pMutex

XrdSysMutex XrdCl::JobManager::pMutex
private

◆ pRunning

bool XrdCl::JobManager::pRunning
private

Referenced by JobManager().

◆ pWorkers

std::vector<pthread_t> XrdCl::JobManager::pWorkers
private

Referenced by IsWorker(), and JobManager().


The documentation for this class was generated from the following file: