Merge pull request #43 from Utils fix/SerialQueueFix

Fix/SerialQueueFix
This commit is contained in:
Chris Cameron
2019-10-29 14:33:28 -04:00
2 changed files with 3 additions and 21 deletions

View File

@@ -5,6 +5,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Changed
- Fixed an issue where commands would collapse to the point of the last deleted command instead of the position in queue where the new command was going
## [8.7.1] - 2019-08-22
### Changed

View File

@@ -134,8 +134,6 @@ namespace ICD.Common.Utils.Collections
if (remove == null)
throw new ArgumentNullException("remove");
bool inserted = false;
foreach (KeyValuePair<int, List<T>> kvp in m_PriorityToQueue.ToArray())
{
int[] removeIndices =
@@ -144,35 +142,17 @@ namespace ICD.Common.Utils.Collections
.Reverse()
.ToArray();
if (removeIndices.Length == 0)
continue;
foreach (int removeIndex in removeIndices)
{
kvp.Value.RemoveAt(removeIndex);
m_Count--;
}
if (!inserted)
{
int insertIndex = removeIndices[0];
if (insertIndex >= kvp.Value.Count)
kvp.Value.Add(item);
else
kvp.Value.Insert(insertIndex, item);
m_Count++;
inserted = true;
}
if (kvp.Value.Count == 0)
m_PriorityToQueue.Remove(kvp.Key);
}
if (!inserted)
Enqueue(item, priority);
Enqueue(item, priority);
}
/// <summary>