Ignore:
Timestamp:
3/11/2008 2:18:32 PM (7 years ago)
Author:
lowjoel
Message:

Restore the log IDs after the tasks have been loaded to ensure the uniqueness of new IDs generated.

File:
1 edited

Legend:

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

    r240 r242  
    183183        { 
    184184            lock (tasksLock) 
     185            { 
     186                //Load the list into the dictionary 
    185187                tasks = (Dictionary<uint, Task>)new BinaryFormatter().Deserialize(stream); 
     188 
     189                //Ignore the next portion if there are no tasks 
     190                if (tasks.Count == 0) 
     191                    return; 
     192 
     193                lock (unusedIdsLock) 
     194                { 
     195                    //Find gaps in the numbering 
     196                    nextId = 1; 
     197                    foreach (uint id in tasks.Keys) 
     198                    { 
     199                        while (id > nextId) 
     200                            unusedIds.Add(++nextId); 
     201                        ++nextId; 
     202                    } 
     203 
     204                    //Decrement the ID, since the next ID will be preincremented 
     205                    //before use. 
     206                    --nextId; 
     207                } 
     208            } 
    186209        } 
    187210 
Note: See TracChangeset for help on using the changeset viewer.