diff --git a/source/vibe/core/task.d b/source/vibe/core/task.d index 0813743..22ad957 100644 --- a/source/vibe/core/task.d +++ b/source/vibe/core/task.d @@ -962,9 +962,29 @@ private struct TaskFiberQueue { task.m_queue = null; task.m_prev = null; task.m_next = null; + length--; } } +unittest { + auto f1 = new TaskFiber; + auto f2 = new TaskFiber; + + TaskFiberQueue q; + assert(q.empty && q.length == 0); + q.insertFront(f1); + assert(!q.empty && q.length == 1); + q.insertFront(f2); + assert(!q.empty && q.length == 2); + q.popFront(); + assert(!q.empty && q.length == 1); + q.popFront(); + assert(q.empty && q.length == 0); + q.insertFront(f1); + q.remove(f1); + assert(q.empty && q.length == 0); +} + private struct FLSInfo { void function(void[], size_t) fct; size_t offset;