diff options
Diffstat (limited to 'MediaBrowser.Providers/Manager/SimplePriorityQueue.cs')
| -rw-r--r-- | MediaBrowser.Providers/Manager/SimplePriorityQueue.cs | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/MediaBrowser.Providers/Manager/SimplePriorityQueue.cs b/MediaBrowser.Providers/Manager/SimplePriorityQueue.cs index 6435aa06b..f4c261a81 100644 --- a/MediaBrowser.Providers/Manager/SimplePriorityQueue.cs +++ b/MediaBrowser.Providers/Manager/SimplePriorityQueue.cs @@ -126,17 +126,25 @@ namespace Priority_Queue /// If queue is empty, throws an exception /// O(log n) /// </summary> - public TItem Dequeue() + public bool TryDequeue(out TItem item) { lock (_queue) { if (_queue.Count <= 0) { - throw new InvalidOperationException("Cannot call Dequeue() on an empty queue"); + item = default(TItem); + return false; } - SimpleNode node = _queue.Dequeue(); - return node.Data; + SimpleNode node; + if (_queue.TryDequeue(out node)) + { + item = node.Data; + return true; + } + + item = default(TItem); + return false; } } |
