libsnooze 1.0.18-beta
A wait/notify mechanism for D
To use this package, run the following command in your project's root directory:
Manual usage
Put the following dependency into your project's dependences section:
libsnooze
A wait/notify mechanism for D
API
To see the full documentation (which is always up-to-date) check it out on DUB.
Usage
Importing issues
Currently importing just with import libsnooze
is broken, we recommend you import as follows:
import libsnooze.clib;
import libsnooze;
Which should build!
Example
Firstly we create an Event
which is something that can be notified or awaited on. This is simply accomplished as follows:
Event myEvent = new Event();
Now let's create a thread which consumes myEvent
and waits on it. You will see that we wrap some exception catching around the call to wait()
. We have to catch an InterruptedException
as a call to wait()
can unblock due to a signal being received on the waiting thread, normally you would model yoru program looping back to call wait()
again. Also, if there is a problem with the underlying eventing system then a FatalException
will be thrown and you should handle this by exiting your program or something.
class TestThread : Thread
{
private Event event;
this(Event event)
{
super(&worker);
this.event = event;
}
public void worker()
{
writeln("("~to!(string)(Thread.getThis().id())~") Thread is waiting...");
try
{
/* Wait */
event.wait();
writeln("("~to!(string)(Thread.getThis().id())~") Thread is waiting... [done]");
}
catch(InterruptedException e)
{
// NOTE: You can maybe retry your wait here
writeln("Had an interrupt");
}
catch(FatalException e)
{
// NOTE: This is a FATAL error in the underlying eventing system, do not continue
}
}
}
TestThread thread1 = new TestThread(event);
thread1.start();
Now on the main thread we can do the following to wakeup waiting threads:
/* Wake up all sleeping on this event */
event.notifyAll();
- Registered by Tristan B. Velloza Kildaire
- 1.0.18-beta released a year ago
- deavmi/libsnooze
- LGPL v3.0
- Copyright © 2023, Tristan B. Kildaire
- Authors:
- Dependencies:
- none
- Versions:
-
1.3.0-beta 2023-Jun-29 1.2.3-beta 2023-Jun-29 1.2.2-beta 2023-Jun-26 1.2.1-beta 2023-Jun-26 1.2.0-beta 2023-Jun-24 - Download Stats:
-
-
0 downloads today
-
0 downloads this week
-
1 downloads this month
-
415 downloads total
-
- Score:
- 0.0
- Short URL:
- libsnooze.dub.pm