mirror of
https://github.com/deavmi/tristanable.git
synced 2024-09-21 03:02:57 +02:00
49 lines
768 B
D
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
|
|
{
|
|
|
|
} |