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]>

Reply via email to