|
xrootd
|
#include <XrdPollPoll.hh>


Public Member Functions | |
| void | Detach (XrdLink *lp) |
| void | Disable (XrdLink *lp, const char *etxt=0) |
| int | Enable (XrdLink *lp) |
| void | Start (XrdSysSemaphore *syncp, int &rc) |
| XrdPollPoll (struct pollfd *pp, int numfd) | |
| ~XrdPollPoll () | |
Protected Member Functions | |
| void | doDetach (int pti) |
| void | Exclude (XrdLink *lp) |
| int | Include (XrdLink *lp) |
Private Member Functions | |
| void | doRequests (int maxreq) |
| void | dqLink (XrdLink *lp) |
| void | LogEvent (int req, int pollfd, int cmdfd) |
| void | Recover (int numleft) |
| void | Restart (int ecode) |
Private Attributes | |
| struct pollfd * | PollTab |
| int | PollTNum |
| XrdLink * | PollQ |
| XrdSysMutex | PollMutex |
| int | maxent |
| XrdPollPoll::XrdPollPoll | ( | struct pollfd * | pp, |
| int | numfd | ||
| ) |
| XrdPollPoll::~XrdPollPoll | ( | ) |
References PollTab.
| void XrdPollPoll::Disable | ( | XrdLink * | lp, |
| const char * | etxt = 0 |
||
| ) | [virtual] |
Implements XrdPoll.
References XrdLink::inQ, dqLink(), XrdLink::isEnabled, TRACEI, XrdPoll::PID, XrdLink::FD, XrdPoll::PipeData::req, XrdPoll::PipeData::Parms, XrdPoll::PipeData::Arg, XrdLink::PollEnt, PollTab, XrdPoll::PipeData::theSem, XrdPoll::PollPipe, XrdSysMutex::Lock(), write(), XrdPoll::CmdFD, XrdSysMutex::UnLock(), XrdPoll::XrdLog, XrdSysError::Emsg(), XrdLink::ID, XrdSysSemaphore::Wait(), XrdPoll::Finish(), XrdPoll::XrdSched, and XrdScheduler::Schedule().
Referenced by Exclude().
| void XrdPollPoll::doDetach | ( | int | pti | ) | [protected] |
References PollMutex, XrdSysMutex::Lock(), PollTNum, XrdPoll::XrdLog, XrdSysError::Emsg(), PollTab, pollfd::fd, and XrdSysMutex::UnLock().
Referenced by doRequests().
| void XrdPollPoll::doRequests | ( | int | maxreq | ) | [private] |
References XrdPoll::getRequest(), XrdPoll::ReqBuff, XrdPoll::PipeData::req, XrdPoll::PipeData::Post, XrdPoll::PipeData::Parms, XrdPoll::PipeData::theSem, XrdSysSemaphore::Post(), XrdPoll::PipeData::Arg, PollTab, pollfd::fd, LogEvent(), XrdLink::fd2link(), XrdPoll::PipeData::EnFD, pollfd::events, POLLIN, POLLRDNORM, XrdLink::isEnabled, XrdPoll::numEnabled, XrdPoll::PipeData::DiFD, XrdPoll::PipeData::RmFD, doDetach(), XrdPoll::XrdLog, XrdSysError::Emsg(), TRACE, XrdPoll::PID, and PollTNum.
Referenced by Start().
| void XrdPollPoll::dqLink | ( | XrdLink * | lp | ) | [private] |
References PollMutex, XrdSysMutex::Lock(), XrdLink::inQ, PollQ, XrdLink::Next, XrdSysMutex::UnLock(), XrdPoll::XrdLog, XrdSysError::Emsg(), and XrdLink::ID.
| int XrdPollPoll::Enable | ( | XrdLink * | lp | ) | [virtual] |
Implements XrdPoll.
References XrdLink::isEnabled, PollMutex, XrdSysMutex::Lock(), XrdLink::Next, PollQ, XrdLink::inQ, XrdSysMutex::UnLock(), TRACEI, XrdPoll::PID, XrdLink::FD, XrdPoll::PipeData::req, XrdPoll::PipeData::Parms, XrdPoll::PipeData::Arg, XrdLink::PollEnt, PollTab, XrdPoll::PollPipe, write(), XrdPoll::CmdFD, XrdPoll::XrdLog, XrdSysError::Emsg(), and XrdLink::ID.
| void XrdPollPoll::Exclude | ( | XrdLink * | lp | ) | [protected, virtual] |
Implements XrdPoll.
References XrdLink::isEnabled, XrdPoll::XrdLog, XrdSysError::Emsg(), XrdLink::ID, Disable(), XrdLink::inQ, dqLink(), TRACEI, XrdPoll::PID, XrdLink::FD, XrdPoll::PipeData::req, XrdPoll::PipeData::Parms, XrdPoll::PipeData::Arg, XrdLink::PollEnt, PollTab, XrdPoll::PipeData::theSem, XrdPoll::PollPipe, XrdSysMutex::Lock(), write(), XrdPoll::CmdFD, XrdSysMutex::UnLock(), and XrdSysSemaphore::Wait().
| int XrdPollPoll::Include | ( | XrdLink * | lp | ) | [protected, virtual] |
Implements XrdPoll.
References PollMutex, XrdSysMutex::Lock(), PollTNum, PollTab, pollfd::fd, maxent, XrdPoll::XrdLog, XrdSysError::Emsg(), XrdLink::ID, XrdSysMutex::UnLock(), XrdLink::FD, pollfd::events, POLLIN, POLLRDNORM, pollfd::revents, and XrdLink::PollEnt.
| void XrdPollPoll::LogEvent | ( | int | req, |
| int | pollfd, | ||
| int | cmdfd | ||
| ) | [private] |
References XrdPoll::ReqBuff, XrdPoll::PipeData::req, XrdPoll::PipeData::EnFD, XrdPoll::PipeData::DiFD, XrdPoll::PipeData::RmFD, XrdPoll::PID, XrdPoll::XrdLog, XrdSysError::Emsg(), XrdLink::fd2link(), XrdLink::ID, and snprintf.
Referenced by doRequests().
| void XrdPollPoll::Recover | ( | int | numleft | ) | [private] |
References PollTNum, PollTab, pollfd::revents, XrdLink::fd2link(), pollfd::fd, XrdLink::isEnabled, XrdPoll::XrdLog, XrdSysError::Emsg(), and XrdLink::ID.
Referenced by Start().
| void XrdPollPoll::Restart | ( | int | ecode | ) | [private] |
References TRACE, XrdPoll::PID, XrdPoll::TID, XrdPoll::XrdLog, XrdSysError::Emsg(), PollMutex, XrdSysMutex::Lock(), PollQ, XrdLink::Next, XrdLink::PollEnt, pollfd::fd, XrdPoll::Finish(), XrdPoll::XrdSched, XrdScheduler::Schedule(), and XrdSysMutex::UnLock().
Referenced by Start().
| void XrdPollPoll::Start | ( | XrdSysSemaphore * | syncp, |
| int & | rc | ||
| ) | [virtual] |
Implements XrdPoll.
References POLLIN, POLLRDNORM, PollTab, pollfd::fd, XrdPoll::ReqFD, pollfd::events, pollfd::revents, PollTNum, XrdSysSemaphore::Post(), poll(), Restart(), XrdPoll::numInterrupts, XrdPoll::numEvents, doRequests(), PollMutex, XrdSysMutex::Lock(), PollQ, XrdLink::PollEnt, XrdLink::Next, XrdLink::inQ, XrdPoll::Finish(), XrdPoll::Poll2Text(), XrdLink::isEnabled, XrdPoll::XrdLog, XrdSysError::Emsg(), XrdLink::ID, XrdJob::NextJob, Recover(), XrdSysMutex::UnLock(), XrdPoll::XrdSched, and XrdScheduler::Schedule().
int XrdPollPoll::maxent [private] |
Referenced by XrdPollPoll(), and Include().
XrdSysMutex XrdPollPoll::PollMutex [private] |
XrdLink* XrdPollPoll::PollQ [private] |
Referenced by XrdPollPoll(), Enable(), Start(), dqLink(), and Restart().
struct pollfd* XrdPollPoll::PollTab [private] |
Referenced by XrdPollPoll(), ~XrdPollPoll(), Include(), Disable(), Enable(), Exclude(), Start(), doDetach(), doRequests(), and Recover().
int XrdPollPoll::PollTNum [private] |
Referenced by XrdPollPoll(), Include(), Start(), doDetach(), doRequests(), and Recover().
1.7.5