The OpenD Programming Language

receiveOnly

Receives only messages with arguments of the specified types.

receiveOnlyRet!(T)
receiveOnly
(
T...
)
()

Parameters

T

Variadic list of types to be received.

Return Value

Type: receiveOnlyRet!(T)

The received message. If T has more than one entry, the message will be packed into a std.typecons.Tuple.

Throws

MessageMismatch if a message of types other than T is received, OwnerTerminated when the sending thread was terminated.

Examples

auto tid = spawn(
{
    assert(receiveOnly!int == 42);
});
send(tid, 42);
auto tid = spawn(
{
    assert(receiveOnly!string == "text");
});
send(tid, "text");
struct Record { string name; int age; }

auto tid = spawn(
{
    auto msg = receiveOnly!(double, Record);
    assert(msg[0] == 0.5);
    assert(msg[1].name == "Alice");
    assert(msg[1].age == 31);
});

send(tid, 0.5, Record("Alice", 31));

Meta