45 XrdSsiEvent::EventData *XrdSsiEvent::freeEvent = 0;
63 DEBUG(
"New event: isClear=" <<isClear <<
" running=" <<running);
69 if (!thisEvent.status)
70 {thisEvent.status = st;
71 thisEvent.response = resp;
83 EventData *edP = freeEvent;
84 if (!edP) edP =
new EventData(st, resp);
85 else {freeEvent = edP->next;
94 if (lastEvent) lastEvent->next = edP;
95 else thisEvent .next = edP;
106 EventData *xdP, *edP = fdP;
115 delete edP->response;
122 xdP = fdP->next; edP->next = freeEvent; freeEvent = xdP;
129 if (fdP->status) {
delete fdP->status; fdP->status = 0;}
130 if (fdP->response) {
delete fdP->response; fdP->response = 0;}
136 if (fdP == &thisEvent)
137 {
DEBUG(
"Self running=" <<running);
151 EventData *edP, myEvent;
162 do{thisEvent.Move2(myEvent);
168 do {
if ((rc = XeqEvent(edP->status, &edP->response)) != 0)
break;
175 {
DEBUG(
"XeqEvent requested " <<(rc < 0 ?
"halt" :
"flush"));
182 }
while(thisEvent.status);
void Schedule(XrdJob *jp)
void AddEvent(XrdCl::XRootDStatus *st, XrdCl::AnyObject *resp)