Changeset 17320 for branches/2521_ProblemRefactoring/HeuristicLab.Problems.ExternalEvaluation/3.4/EvaluationCache.cs
- Timestamp:
- 10/04/19 17:31:54 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2521_ProblemRefactoring/HeuristicLab.Problems.ExternalEvaluation/3.4/EvaluationCache.cs
r17226 r17320 31 31 using System.Threading; 32 32 using Google.ProtocolBuffers; 33 using HEAL.Attic; 33 34 using HeuristicLab.Common; 34 35 using HeuristicLab.Common.Resources; … … 36 37 using HeuristicLab.Data; 37 38 using HeuristicLab.Parameters; 38 using HEAL.Attic;39 39 40 40 namespace HeuristicLab.Problems.ExternalEvaluation { … … 50 50 private byte[] rawMessage; 51 51 52 private object lockObject = new object();52 private readonly object lockObject = new object(); 53 53 54 54 public byte[] RawMessage { … … 116 116 } 117 117 118 public delegate QualityMessage Evaluator(SolutionMessage message );118 public delegate QualityMessage Evaluator(SolutionMessage message, CancellationToken cancellationToken); 119 119 #endregion 120 120 … … 124 124 125 125 private HashSet<string> activeEvaluations = new HashSet<string>(); 126 private object cacheLock = new object();126 private readonly object cacheLock = new object(); 127 127 #endregion 128 128 … … 221 221 } 222 222 223 void CapacityChanged(object sender, EventArgs e) {223 private void CapacityChanged(object sender, EventArgs e) { 224 224 if (Capacity < 0) 225 225 throw new ArgumentOutOfRangeException("Cache capacity cannot be less than zero"); … … 240 240 } 241 241 242 public QualityMessage GetValue(SolutionMessage message, Evaluator evaluate, ExtensionRegistry extensions ) {242 public QualityMessage GetValue(SolutionMessage message, Evaluator evaluate, ExtensionRegistry extensions, CancellationToken cancellationToken) { 243 243 var entry = new CacheEntry(message.ToString()); 244 244 bool lockTaken = false; … … 267 267 OnChanged(); 268 268 try { 269 entry.SetMessage(evaluate(message ));269 entry.SetMessage(evaluate(message, cancellationToken)); 270 270 Monitor.Enter(cacheLock, ref lockTaken); 271 271 index[entry] = list.AddLast(entry);
Note: See TracChangeset
for help on using the changeset viewer.