- The actual queue is now an `SList!(TaggedMessage)`
- Added a stub method `enqueue(TaggedMessage)`
- Updated the stub method `dequeue()` which returns a `TaggedMessage` now
This commit is contained in:
Tristan B. Velloza Kildaire 2023-03-30 13:35:09 +02:00
parent 0d94ed0c83
commit 409dacd4da
1 changed files with 13 additions and 2 deletions

View File

@ -6,6 +6,8 @@ import libsnooze;
import tristanable.queueitem : QueueItem; import tristanable.queueitem : QueueItem;
import core.sync.mutex : Mutex; import core.sync.mutex : Mutex;
import std.container.slist : SList;
import tristanable.encoding;
public class Queue public class Queue
{ {
@ -15,7 +17,7 @@ public class Queue
*/ */
private Event event; private Event event;
private QueueItem queue; private SList!(TaggedMessage) queue;
private Mutex queueLock; private Mutex queueLock;
/** /**
@ -36,8 +38,15 @@ public class Queue
this.queueID = queueID; this.queueID = queueID;
} }
public void dequeue() public void enqueue(TaggedMessage message)
{ {
// TODO: Implement me
}
public TaggedMessage dequeue()
{
TaggedMessage message;
try try
{ {
// TODO: Make us wait on the event (optional with a time-out) // TODO: Make us wait on the event (optional with a time-out)
@ -55,6 +64,8 @@ public class Queue
// TODO: Unlock queue // TODO: Unlock queue
queueLock.unlock(); queueLock.unlock();
return message;
} }
public ulong getID() public ulong getID()