You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by ra...@apache.org on 2001/03/19 07:19:34 UTC
cvs commit: jakarta-avalon-cornerstone/src/java/org/apache/cornerstone/blocks/scheduler DefaultTimeScheduler.java
ramc 01/03/18 22:19:34
Modified: src/java/org/apache/cornerstone/blocks/scheduler
DefaultTimeScheduler.java
Log:
Used reset() (instead of clonning), to reset the trigger. Also, used thread safe version of PriorityQueue.
Revision Changes Path
1.3 +14 -19 jakarta-avalon-cornerstone/src/java/org/apache/cornerstone/blocks/scheduler/DefaultTimeScheduler.java
Index: DefaultTimeScheduler.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/src/java/org/apache/cornerstone/blocks/scheduler/DefaultTimeScheduler.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- DefaultTimeScheduler.java 2001/03/15 17:10:03 1.2
+++ DefaultTimeScheduler.java 2001/03/19 06:19:34 1.3
@@ -17,6 +17,8 @@
import org.apache.cornerstone.services.scheduler.TimeTrigger;
import org.apache.cornerstone.services.scheduler.Target;
import org.apache.avalon.util.BinaryHeap;
+import org.apache.avalon.util.PriorityQueue;
+import org.apache.avalon.util.SynchronizedPriorityQueue;
import org.apache.avalon.util.thread.ThreadContext;
import org.apache.log.Logger;
@@ -34,12 +36,12 @@
protected boolean m_running;
protected Hashtable m_entries;
- protected BinaryHeap m_priorityQueue;
+ protected PriorityQueue m_priorityQueue;
public void init()
{
m_entries = new Hashtable();
- m_priorityQueue = new BinaryHeap();
+ m_priorityQueue = new SynchronizedPriorityQueue( new BinaryHeap() );
}
public void dispose()
@@ -100,6 +102,7 @@
throws NoSuchElementException
{
final TimeScheduledEntry entry = getEntry( name );
+ entry.getTimeTrigger().reset();
rescheduleEntry( entry, true );
}
@@ -118,23 +121,15 @@
if( clone )
{
- try
- {
- entry = new TimeScheduledEntry( timeEntry.getName(),
- timeEntry.getTimeTrigger().getClone(),
- timeEntry.getTarget() );
- timeEntry.invalidate();
-
- // remove old refernce to the entry..so that next time
- // somebody calls getEntry( name ), we will get the new valid entry.
- m_entries.remove( timeEntry.getName() );
- m_entries.put( timeEntry.getName(), entry );
- }
- catch( final CloneNotSupportedException cnse )
- {
- //not sure what to do with this....
- //but this should never happen as interface TimeTrigger is Cloneable.
- }
+ entry = new TimeScheduledEntry( timeEntry.getName(),
+ timeEntry.getTimeTrigger(),
+ timeEntry.getTarget() );
+ timeEntry.invalidate();
+
+ // remove old refernce to the entry..so that next time
+ // somebody calls getEntry( name ), we will get the new valid entry.
+ m_entries.remove( timeEntry.getName() );
+ m_entries.put( timeEntry.getName(), entry );
}
//reschedule if appropriate
---------------------------------------------------------------------
To unsubscribe, e-mail: avalon-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: avalon-dev-help@jakarta.apache.org