public void Dispose() { LinkedListNode <PriorityBindingEntry> binding = Interlocked.Exchange(ref _binding, null); if (binding == null) { // Some system is trying to remove binding twice. Debug.Assert(false); return; } PriorityBindingEntry entry = binding.Value; if (!entry.HasCompleted) { _bindings.Remove(binding); entry.Dispose(); if (entry.Index >= _priorityLevel.ActiveBindingIndex) { _priorityLevel.ActivateFirstBinding(); } } }
public void Dispose() { PriorityBindingEntry entry = _binding.Value; if (!entry.HasCompleted) { _bindings.Remove(_binding); entry.Dispose(); if (entry.Index >= _priorityLevel.ActiveBindingIndex) { _priorityLevel.ActivateFirstBinding(); } } }