diff options
Diffstat (limited to 'MediaBrowser.Providers/Manager/GenericPriorityQueue.cs')
| -rw-r--r-- | MediaBrowser.Providers/Manager/GenericPriorityQueue.cs | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/MediaBrowser.Providers/Manager/GenericPriorityQueue.cs b/MediaBrowser.Providers/Manager/GenericPriorityQueue.cs index 18998fd59..03bb0f68c 100644 --- a/MediaBrowser.Providers/Manager/GenericPriorityQueue.cs +++ b/MediaBrowser.Providers/Manager/GenericPriorityQueue.cs @@ -243,14 +243,16 @@ namespace Priority_Queue /// If queue is empty, result is undefined /// O(log n) /// </summary> - public TItem Dequeue() + public bool TryDequeue(out TItem item) { -#if DEBUG if (_numNodes <= 0) { - throw new InvalidOperationException("Cannot call Dequeue() on an empty queue"); + item = default(TItem); + return false; } +#if DEBUG + if (!IsValidQueue()) { throw new InvalidOperationException("Queue has been corrupted (Did you update a node priority manually instead of calling UpdatePriority()?" + @@ -260,7 +262,8 @@ namespace Priority_Queue TItem returnMe = _nodes[1]; Remove(returnMe); - return returnMe; + item = returnMe; + return true; } /// <summary> |
