- Upgraded to working version of `libsnooze` (compilation-wise)

- Fixed imports and missing definitions in `queue` module
This commit is contained in:
Tristan B. Velloza Kildaire 2023-02-26 22:24:49 +02:00
parent cf431bdac9
commit e7f93cd78a
3 changed files with 33 additions and 1 deletions

1
.gitignore vendored
View File

@ -22,3 +22,4 @@ docs/
# Code coverage
*.lst
source/tristanable/queue.d

View File

@ -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",

View File

@ -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)
@ -15,4 +41,9 @@ public class Queue
return queue;
}
}
public class QueueItem
{
}