- Upgraded to working version of `libsnooze` (compilation-wise)
- Fixed imports and missing definitions in `queue` module
This commit is contained in:
parent
cf431bdac9
commit
e7f93cd78a
|
@ -22,3 +22,4 @@ docs/
|
|||
|
||||
# Code coverage
|
||||
*.lst
|
||||
source/tristanable/queue.d
|
||||
|
|
2
dub.json
2
dub.json
|
@ -4,7 +4,7 @@
|
|||
],
|
||||
"copyright": "Copyright © 2023, Tristan B. Kildaire",
|
||||
"dependencies": {
|
||||
"libsnooze": "0.2.5"
|
||||
"libsnooze": "0.2.7"
|
||||
},
|
||||
"description": "Tag-based asynchronous messaging framework",
|
||||
"license": "LGPL-3.0",
|
||||
|
|
|
@ -1,10 +1,36 @@
|
|||
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)
|
||||
|
@ -16,3 +42,8 @@ public class Queue
|
|||
return queue;
|
||||
}
|
||||
}
|
||||
|
||||
public class QueueItem
|
||||
{
|
||||
|
||||
}
|
Loading…
Reference in New Issue