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=2048, 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
 
XrdSchedulerPIDfirstPID
 
XrdSysMutex ReaperMutex
 

Static Private Attributes

static const char * TraceID = "Sched"
 

Constructor & Destructor Documentation

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

Member Function Documentation

int XrdScheduler::Active ( )
inline

References idl_Workers, num_JobsinQ, and num_Workers.

Referenced by XrdStats::Report().

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

References idl_Workers, num_Workers, and stk_Workers.

Referenced by XrdLink::DoIt().

void XrdScheduler::DoIt ( )
virtual
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

References TRACE.

Referenced by Reaper().

Member Data Documentation

XrdSysMutex XrdScheduler::DispatchMutex
private

Referenced by DoIt(), Run(), and Stats().

XrdSchedulerPID* XrdScheduler::firstPID
private

Referenced by Fork(), Reaper(), and XrdScheduler().

int XrdScheduler::idl_Workers
private
int XrdScheduler::max_QLength

Referenced by Schedule(), Stats(), and XrdScheduler().

int XrdScheduler::max_Workers
private

Referenced by hireWorker(), setParms(), and XrdScheduler().

int XrdScheduler::max_Workidl
private

Referenced by DoIt(), setParms(), Start(), and XrdScheduler().

int XrdScheduler::min_Workers
private
int XrdScheduler::num_Jobs

Referenced by Schedule(), Stats(), and XrdScheduler().

int XrdScheduler::num_JobsinQ
private
int XrdScheduler::num_Layoffs
private

Referenced by DoIt(), Run(), and XrdScheduler().

int XrdScheduler::num_Limited

Referenced by hireWorker(), Stats(), and XrdScheduler().

int XrdScheduler::num_TCreate

Referenced by hireWorker(), Stats(), and XrdScheduler().

int XrdScheduler::num_TDestroy

Referenced by Run(), Stats(), and XrdScheduler().

int XrdScheduler::num_Workers
private
XrdSysMutex XrdScheduler::ReaperMutex
private

Referenced by Fork(), and Reaper().

XrdSysMutex XrdScheduler::SchedMutex
private
int XrdScheduler::stk_Workers
private
XrdSysMutex XrdScheduler::TimerMutex
private

Referenced by Cancel(), Schedule(), and TimeSched().

XrdJob* XrdScheduler::TimerQueue
private
XrdSysCondVar XrdScheduler::TimerRings
private

Referenced by Schedule(), and TimeSched().

const char * XrdScheduler::TraceID = "Sched"
staticprivate
XrdSysSemaphore XrdScheduler::WorkAvail
private

Referenced by DoIt(), Run(), and Schedule().

XrdJob* XrdScheduler::WorkFirst
private

Referenced by Run(), Schedule(), and XrdScheduler().

XrdJob* XrdScheduler::WorkLast
private

Referenced by Run(), Schedule(), and XrdScheduler().

XrdSysError* XrdScheduler::XrdLog
private
XrdOucTrace* XrdScheduler::XrdTrace
private

Referenced by XrdScheduler().


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