Actually I have a bug in `foo()`, the switch statement is executed even if I didn't get a message back. Here's a fix:
void foo()
{
int result;
bool gotMessage;
while (true)
{
gotMessage = receiveTimeout(1000,
(int x) { result = x; }
);
if (!gotMessage)
break;
switch (result)
{
case 1:
writeln("one");
break;
case 2:
writeln("two");
break;
default:
writeln("something else");
break;
}
}
writeln("Done!");
}
