Ignore:
Timestamp:
3/11/2008 6:19:01 AM (7 years ago)
Author:
lowjoel
Message:

Define a QueueTask? function for immediate tasks to be executed repeatedly.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eraser6/Manager/DirectExecutor.cs

    r221 r225  
    5353            { 
    5454                tasks.Add(task.ID, task); 
    55  
     55                QueueTask(task); 
     56            } 
     57        } 
     58 
     59        public override bool DeleteTask(uint taskId) 
     60        { 
     61            lock (tasksLock) 
     62            { 
     63                if (!tasks.ContainsKey(taskId)) 
     64                    return false; 
     65 
     66                lock (unusedIdsLock) 
     67                    unusedIds.Add(taskId); 
     68                tasks.Remove(taskId); 
     69            } 
     70            return true; 
     71        } 
     72 
     73        public override void QueueTask(Task task) 
     74        { 
     75            //Ignore tasks which are only run on computer restart. 
     76            if (task.Schedule == Schedule.RunOnRestart) 
     77                return; 
     78 
     79            lock (tasksLock) 
     80            { 
    5681                //If the task is scheduled to run now, break the waiting thread and 
    5782                //run it immediately 
     
    6388                //If the task is scheduled, add the next execution time to the list 
    6489                //of schduled tasks. 
    65                 else if (task.Schedule != Schedule.RunOnRestart) 
     90                else 
    6691                { 
    6792                    scheduledTasks.Add((task.Schedule as RecurringSchedule).NextRun, task); 
    6893                } 
    6994            } 
    70         } 
    71  
    72         public override bool DeleteTask(uint taskId) 
    73         { 
    74             lock (tasksLock) 
    75             { 
    76                 if (!tasks.ContainsKey(taskId)) 
    77                     return false; 
    78  
    79                 lock (unusedIdsLock) 
    80                     unusedIds.Add(taskId); 
    81                 tasks.Remove(taskId); 
    82             } 
    83             return true; 
    8495        } 
    8596 
Note: See TracChangeset for help on using the changeset viewer.