Hi,
In cornerstone/blocks/scheduler/DefaultTimeScheduler class the addTrigger()
& rescheduleEntry() methods notify the waiting thread only if the first
entry in the priorityqueue matches the current entry.
if( entry == m_priorityQueue.peek() )
{
notifyAll();
}
As a result of this, the waiting thread (the run() method)
synchronized( this ) {
wait( duration );
}
does not get notified & does not get a chance to remove invalid entries from
the queue (old entries invalidated by rescheduleEntry() method) & the queue
keeps growing until the wait times out, the timeout value depending on the
value specified to the trigger.
My question here is why don't these methods send a notify after it finds any
entry in the queue, so that the waiting thread gets a chance to clean up all
invalid entries? Or is there some other thread notifying this thread?
Shilpa Dalmia
PostX Corporation
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>