private void Recycle(FutureBase future) { lock (_futuresPending) { _futuresPending.Remove(future); if (Log.IsInfoEnabled) { Log.Info( ".DispatchFuture - Instance {0} done dispatching: {1} pending", _id, _futuresPending.Count); } if (_futuresPending.Count == 0) { _futuresMonitor.Set(); } } Interlocked.Increment(ref _numRecycled); }
private void Recycle(FutureBase future) { Log.Info(".Recycle - Instance {0} starting", _id); lock (_futuresPending) { using (new Tracer(Log, "Recycle(lock)")) { _futuresPending.Remove(future); if (Log.IsInfoEnabled) { Log.Info( ".Recycle - Instance {0} done dispatching: {1} pending", _id, _futuresPending.Count); } if (_futuresPending.Count == 0) { Monitor.PulseAll(_futuresPending); } } } Interlocked.Increment(ref _numRecycled); }