tristanable/source/tristanable/queue.d
2023-02-26 22:24:49 +02:00

49 lines
768 B
D

module tristanable.queue;
import libsnooze;
import core.sync.mutex : Mutex;
public class Queue
{
/**
* Everytime a thread calls `.dequeue()` on this queue
*
*/
private Event event;
private QueueItem queue;
private Mutex queueLock;
private this()
{
this.queueLock = new Mutex();
}
public void dequeue()
{
// TODO: Make us wait on the event (optional with a time-out)
// TODO: Lock queue
queueLock.lock();
// TODO: Get item off queue
// TODO: Unlock queue
queueLock.unlock();
}
public static Queue newQueue(ulong queueID)
{
Queue queue;
// TODO: Implement me
return queue;
}
}
public class QueueItem
{
}