aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers/Manager/GenericPriorityQueue.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Providers/Manager/GenericPriorityQueue.cs')
-rw-r--r--MediaBrowser.Providers/Manager/GenericPriorityQueue.cs11
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>