[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Possible bug in CalendarScheduler::cancel()
Hi all,
I write a code for WF2Q scheduler. Like Paolo Losi, I scheduler an event
as following:
Schedule::instance().schedule((Handler*)&wfq_handler,wfq_event,next_time);
And later cancel this event like this:
if (wfq_event!=NULL) {
Scheduler::instance().cancel(wfq_event);
delete wfq_event;
}
I found that this event is not canceled at all. I'm running
ns-allinone-2.1b5 under HPUX 10.20 and using CalendarScheduler, could
anybody help me to solve the problem?
Thank you very much for the help.
P.S: I write down here this function, would there be a bug here?
void CalendarScheduler::cancel(Event* e) {
int i=(int)(((long)(e->time_ * oneonwidth_)) & buckbit_);
if (e->uid_ <=0)
return;
for (Event** p=buckets_+i;(*p)!=NULL;p=&(*p)->next_)
if ((*p)==e) {
(*p)=(*p)->next_;
e->uid_= - e->uid_;
qsize_--;
return;
}
abort();
}
--
------------------------------------------------
Nguyen Huu Thanh
Universitaet der Bundeswehr Muenchen
Institut fuer informationstechnische Systeme
Werner-Heisenberg-Weg 39
85577 Neubiberg
Tel.: +49 89 6004-2279
Email: [email protected]
-------------------------------------------------