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