xrootd
Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
XrdScheduler Class Reference

#include <XrdScheduler.hh>

Inheritance diagram for XrdScheduler:
Inheritance graph
[legend]
Collaboration diagram for XrdScheduler:
Collaboration graph
[legend]

Public Member Functions

int Active ()
 
void Cancel (XrdJob *jp)
 
int canStick ()
 
void DoIt ()
 
pid_t Fork (const char *id)
 
void * Reaper ()
 
void Run ()
 
void Schedule (XrdJob *jp)
 
void Schedule (int num, XrdJob *jfirst, XrdJob *jlast)
 
void Schedule (XrdJob *jp, time_t atime)
 
void setParms (int minw, int maxw, int avlt, int maxi, int once=0)
 
void Start ()
 
int Stats (char *buff, int blen, int do_sync=0)
 
void TimeSched ()
 
 XrdScheduler (XrdSysError *eP, XrdOucTrace *tP, int minw=8, int maxw=8192, int maxi=780)
 
 ~XrdScheduler ()
 
- Public Member Functions inherited from XrdJob
 XrdJob (const char *desc="")
 
virtual ~XrdJob ()
 

Public Attributes

int num_TCreate
 
int num_TDestroy
 
int num_Jobs
 
int max_QLength
 
int num_Limited
 
- Public Attributes inherited from XrdJob
XrdJobNextJob
 
const char * Comment
 

Private Member Functions

void hireWorker (int dotrace=1)
 
void Monitor ()
 
void traceExit (pid_t pid, int status)
 

Private Attributes

XrdSysErrorXrdLog
 
XrdOucTraceXrdTrace
 
XrdSysMutex DispatchMutex
 
int idl_Workers
 
int min_Workers
 
int max_Workers
 
int max_Workidl
 
int num_Workers
 
int stk_Workers
 
int num_JobsinQ
 
int num_Layoffs
 
XrdJobWorkFirst
 
XrdJobWorkLast
 
XrdSysSemaphore WorkAvail
 
XrdSysMutex SchedMutex
 
XrdJobTimerQueue
 
XrdSysCondVar TimerRings
 
XrdSysMutex TimerMutex
 
XrdSchedulerPID * firstPID
 
XrdSysMutex ReaperMutex
 

Static Private Attributes

static const char * TraceID
 

Constructor & Destructor Documentation

XrdScheduler::XrdScheduler ( XrdSysError eP,
XrdOucTrace tP,
int  minw = 8,
int  maxw = 8192,
int  maxi = 780 
)
XrdScheduler::~XrdScheduler ( )

Member Function Documentation

int XrdScheduler::Active ( )
inline

References idl_Workers, num_JobsinQ, and num_Workers.

void XrdScheduler::Cancel ( XrdJob jp)
int XrdScheduler::canStick ( )
inline

References idl_Workers, num_Workers, and stk_Workers.

void XrdScheduler::DoIt ( )
virtual

Implements XrdJob.

pid_t XrdScheduler::Fork ( const char *  id)
void XrdScheduler::hireWorker ( int  dotrace = 1)
private
void XrdScheduler::Monitor ( )
private
void* XrdScheduler::Reaper ( )
void XrdScheduler::Run ( )
void XrdScheduler::Schedule ( XrdJob jp)
void XrdScheduler::Schedule ( int  num,
XrdJob jfirst,
XrdJob jlast 
)
void XrdScheduler::Schedule ( XrdJob jp,
time_t  atime 
)
void XrdScheduler::setParms ( int  minw,
int  maxw,
int  avlt,
int  maxi,
int  once = 0 
)
void XrdScheduler::Start ( )
int XrdScheduler::Stats ( char *  buff,
int  blen,
int  do_sync = 0 
)
void XrdScheduler::TimeSched ( )
void XrdScheduler::traceExit ( pid_t  pid,
int  status 
)
private

Member Data Documentation

XrdSysMutex XrdScheduler::DispatchMutex
private
XrdSchedulerPID* XrdScheduler::firstPID
private
int XrdScheduler::idl_Workers
private

Referenced by Active(), and canStick().

int XrdScheduler::max_QLength
int XrdScheduler::max_Workers
private
int XrdScheduler::max_Workidl
private
int XrdScheduler::min_Workers
private
int XrdScheduler::num_Jobs
int XrdScheduler::num_JobsinQ
private

Referenced by Active().

int XrdScheduler::num_Layoffs
private
int XrdScheduler::num_Limited
int XrdScheduler::num_TCreate
int XrdScheduler::num_TDestroy
int XrdScheduler::num_Workers
private

Referenced by Active(), and canStick().

XrdSysMutex XrdScheduler::ReaperMutex
private
XrdSysMutex XrdScheduler::SchedMutex
private
int XrdScheduler::stk_Workers
private

Referenced by canStick().

XrdSysMutex XrdScheduler::TimerMutex
private
XrdJob* XrdScheduler::TimerQueue
private
XrdSysCondVar XrdScheduler::TimerRings
private
const char* XrdScheduler::TraceID
staticprivate
XrdSysSemaphore XrdScheduler::WorkAvail
private
XrdJob* XrdScheduler::WorkFirst
private
XrdJob* XrdScheduler::WorkLast
private
XrdSysError* XrdScheduler::XrdLog
private
XrdOucTrace* XrdScheduler::XrdTrace
private

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