In "The D Programming Language", page 402, the toy program fails.

The first fail is that enforce() needs: import std.exception;

The second fail is that when debugging, in Visual Studio 2015 Community Edition,
it fails with this error:
First-change exception: std.format.FormatException Unterminated format specifier: "%" at C:\D\dmd2\windows\bin\..\..\src\phobos\std\format.d(830).

Please provide full replacement of this toy program that works with D version 2.070.0

This is what was entered:

import std.concurrency, std.stdio, std.exception;

void main() {
        auto low = 0,
             high = 100;
        auto tid = spawn(&writer);

        foreach (i; low .. high) {
                writeln("Main thread: ", i);
                tid.send(thisTid, i);
                enforce(receiveOnly!Tid() == tid);
        }
}

void writer() {
        for (;;) {
                auto msg = receiveOnly!(Tid, int)();
                writeln("secondary thread: ", msg[1]);
                msg[0].send(thisTid);
        }
}


Thank you.

Reply via email to