![]() |
XRootD
|
#include <XrdScheduler.hh>
Public Member Functions | |
XrdScheduler (int minw=3, int maxw=128, int maxi=12) | |
XrdScheduler (XrdSysError *eP, XrdOucTrace *tP, int minw=8, int maxw=8192, int maxi=780) | |
XrdScheduler (XrdSysError *eP, XrdSysTrace *tP, int minw=8, int maxw=8192, int maxi=780) | |
~XrdScheduler () | |
int | Active () |
void | Cancel (XrdJob *jp) |
int | canStick () |
void | DoIt () |
pid_t | Fork (const char *id) |
void * | Reaper () |
void | Run () |
void | Schedule (int num, XrdJob *jfirst, XrdJob *jlast) |
void | Schedule (XrdJob *jp) |
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 () |
![]() | |
XrdJob (const char *desc="") | |
virtual | ~XrdJob () |
Public Attributes | |
int | max_QLength |
int | num_Jobs |
int | num_Limited |
int | num_TCreate |
int | num_TDestroy |
![]() | |
const char * | Comment |
XrdJob * | NextJob |
Definition at line 45 of file XrdScheduler.hh.
XrdScheduler::XrdScheduler | ( | XrdSysError * | eP, |
XrdSysTrace * | tP, | ||
int | minw = 8 , |
||
int | maxw = 8192 , |
||
int | maxi = 780 |
||
) |
Definition at line 97 of file XrdScheduler.cc.
XrdScheduler::XrdScheduler | ( | XrdSysError * | eP, |
XrdOucTrace * | tP, | ||
int | minw = 8 , |
||
int | maxw = 8192 , |
||
int | maxi = 780 |
||
) |
Definition at line 108 of file XrdScheduler.cc.
References XrdSysError::logger().
XrdScheduler::XrdScheduler | ( | int | minw = 3 , |
int | maxw = 128 , |
||
int | maxi = 12 |
||
) |
Definition at line 123 of file XrdScheduler.cc.
References fcntl(), XrdGlobal::Logger, TRACE_SCHED, and XrdSysTrace::What.
XrdScheduler::~XrdScheduler | ( | ) |
Definition at line 218 of file XrdScheduler.cc.
|
inline |
Definition at line 49 of file XrdScheduler.hh.
Referenced by XrdStats::Report().
void XrdScheduler::Cancel | ( | XrdJob * | jp | ) |
Definition at line 226 of file XrdScheduler.cc.
References XrdJob::Comment, XrdSysMutex::Lock(), XrdJob::NextJob, TRACE, and XrdSysMutex::UnLock().
Referenced by XrdXrootdJob::~XrdXrootdJob(), XrdXrootdTransit::Recycle(), Schedule(), and setParms().
|
inline |
Definition at line 53 of file XrdScheduler.hh.
Referenced by XrdLinkXeq::DoIt().
|
virtual |
Implements XrdJob.
Definition at line 256 of file XrdScheduler.cc.
References XrdSysMutex::Lock(), XrdSysSemaphore::Post(), Schedule(), TRACE, and XrdSysMutex::UnLock().
pid_t XrdScheduler::Fork | ( | const char * | id | ) |
Definition at line 286 of file XrdScheduler.cc.
References XrdSysError::Emsg(), XrdSysMutex::Lock(), XrdSysThread::Run(), XrdSysMutex::UnLock(), XrdLog, and XrdStartReaper().
void * XrdScheduler::Reaper | ( | ) |
Definition at line 324 of file XrdScheduler.cc.
References XrdSysMutex::Lock(), XrdSchedulerPID::next, XrdSchedulerPID::pid, TRACE_SCHED, TRACING, and XrdSysMutex::UnLock().
Referenced by XrdStartReaper().
void XrdScheduler::Run | ( | ) |
Definition at line 370 of file XrdScheduler.cc.
References XrdJob::Comment, XrdJob::DoIt(), XrdSysError::Emsg(), XrdSysMutex::Lock(), XrdJob::NextJob, num_TDestroy, TRACE, TRACE_SCHED, TRACING, XrdSysMutex::UnLock(), XrdSysSemaphore::Wait(), and XrdLog.
Referenced by XrdStartWorking().
Definition at line 445 of file XrdScheduler.cc.
References XrdSysMutex::Lock(), max_QLength, XrdJob::NextJob, num_Jobs, XrdSysSemaphore::Post(), and XrdSysMutex::UnLock().
void XrdScheduler::Schedule | ( | XrdJob * | jp | ) |
Definition at line 414 of file XrdScheduler.cc.
References XrdSysMutex::Lock(), max_QLength, XrdJob::NextJob, num_Jobs, XrdSysSemaphore::Post(), and XrdSysMutex::UnLock().
Referenced by XrdCmsDelNode::XrdCmsDelNode(), XrdCmsDrop::XrdCmsDrop(), XrdStatsJob::XrdStatsJob(), XrdXrootdJob::XrdXrootdJob(), XrdXrootdPrepare::XrdXrootdPrepare(), XrdSsiFileReq::Activate(), XrdSsiEvent::AddEvent(), XrdXrootdAioTask::Completed(), XrdCmsConfig::Configure2(), XrdPfc::IO::Detach(), XrdPollE::Disable(), XrdPollPoll::Disable(), XrdCmsNode::do_SelPrep(), XrdObjectQ< T >::DoIt(), DoIt(), XrdStatsJob::DoIt(), XrdCmsBlackList::DoIt(), XrdCms::PingClock::DoIt(), XrdCmsJob::DoIt(), XrdCmsPrepare::DoIt(), XrdXrootdJob::DoIt(), XrdXrootdMonFile::DoIt(), XrdXrootdMonitor_Ident::DoIt(), XrdXrootdMonitor_Tick::DoIt(), XrdXrootdPrepare::DoIt(), XrdXrootdCallBack::Done(), XrdPosixFileRH::HandleResponse(), XrdXrootdMonFile::Init(), XrdXrootdMonitor::Init(), XrdCmsBlackList::Init(), mainAccept(), mainAdmin(), XrdPfc::ResourceMonitor::perform_purge_check(), XrdPfc::Cache::Prepare(), XrdCmsPrepare::Reset(), XrdSsiUtils::RetErr(), XrdPosixFileRH::Sched(), XrdOfsPrepGPIReal::PrepGRun::Sched(), XrdSsiTaskReal::SchedError(), XrdOssCsiFileAio::SchedReadJob(), XrdOssCsiFileAio::SchedReadJob2(), XrdXrootdJob::Schedule(), XrdXrootdAioFob::Schedule(), XrdOssCsiFileAio::SchedWriteJob(), XrdOssCsiFileAio::SchedWriteJob2(), XrdObjectQ< T >::Set(), setParms(), XrdLinkCtl::Setup(), Start(), XrdPollE::Start(), XrdPollPoll::Start(), XrdSendQ::Terminate(), XrdCmsCache::TickTock(), TimeSched(), and XrdSsiSessReal::UnHold().
void XrdScheduler::Schedule | ( | XrdJob * | jp, |
time_t | atime | ||
) |
Definition at line 480 of file XrdScheduler.cc.
References Cancel(), XrdJob::Comment, XrdSysMutex::Lock(), XrdJob::NextJob, XrdSysCondVar::Signal(), TRACE, TRACE_SCHED, TRACING, and XrdSysMutex::UnLock().
void XrdScheduler::setParms | ( | int | minw, |
int | maxw, | ||
int | avlt, | ||
int | maxi, | ||
int | once = 0 |
||
) |
Definition at line 515 of file XrdScheduler.cc.
References Cancel(), XrdSysMutex::Lock(), Schedule(), TRACE, and XrdSysMutex::UnLock().
void XrdScheduler::Start | ( | ) |
Definition at line 561 of file XrdScheduler.cc.
References XrdSysError::Emsg(), XrdSysThread::Run(), Schedule(), TRACE, TRACE_SCHED, XrdOucTrace::What, XrdSysTrace::What, XrdLog, XrdStartTSched(), XRDSYSTHREAD_BIND, and XrdGlobal::XrdTrace.
Referenced by XrdOssCsi::Init(), and XrdOucGetCache().
int XrdScheduler::Stats | ( | char * | buff, |
int | blen, | ||
int | do_sync = 0 |
||
) |
Definition at line 595 of file XrdScheduler.cc.
References XrdSysMutex::Lock(), max_QLength, num_Jobs, num_Limited, num_TCreate, num_TDestroy, and XrdSysMutex::UnLock().
Referenced by XrdConfig::XrdConfig().
void XrdScheduler::TimeSched | ( | ) |
Definition at line 638 of file XrdScheduler.cc.
References XrdSysMutex::Lock(), XrdJob::NextJob, Schedule(), XrdSysMutex::UnLock(), and XrdSysCondVar::Wait().
Referenced by XrdStartTSched().
int XrdScheduler::max_QLength |
Definition at line 81 of file XrdScheduler.hh.
Referenced by Schedule(), and Stats().
int XrdScheduler::num_Jobs |
Definition at line 80 of file XrdScheduler.hh.
Referenced by Schedule(), and Stats().
int XrdScheduler::num_Limited |
Definition at line 82 of file XrdScheduler.hh.
Referenced by Stats().
int XrdScheduler::num_TCreate |
Definition at line 78 of file XrdScheduler.hh.
Referenced by Stats().
int XrdScheduler::num_TDestroy |
Definition at line 79 of file XrdScheduler.hh.