Go to file
Tristan B. Velloza Kildaire 00d18e0800 - Test more 2023-02-26 22:31:04 +02:00
branding - Added logo 2023-02-23 15:27:49 +02:00
source/libsnooze - Test more 2023-02-26 22:31:04 +02:00
.gitignore Initial implementation 2023-02-23 15:16:24 +02:00
LICENSE - Added license 2023-02-23 15:47:46 +02:00
README.md Update README.md 2023-02-26 17:51:46 +02:00
dub.json - Test more 2023-02-26 22:31:04 +02:00

README.md


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

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:

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...");
        event.wait();
        writeln("("~to!(string)(Thread.getThis().id())~") Thread is waiting... [done]");
    }
}

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();