Am 21.07.2017 um 22:51 schrieb Hugo D.:
When using vibe.d 0.8.0 with ldc2 1.3.0-beta2 on windows, trying to
send
orsendCompat
anything to a task created before the sender, causes a range violation. This does not happen with dmd.CoreTaskFiber was terminated unexpectedly: Range violation
This program will reproduce the error. Swapping the
runTask
lines will produce the expectedhello
output.import std.stdio; import core.time; import vibe.core.core; import vibe.core.concurrency; Task alice; Task bob; int main () { bob = runTask(() { bobProc(); }); alice = runTask(() { aliceProc(); }); setTimer(1.seconds, () { exitEventLoop(); }); return runEventLoop(); } void aliceProc () { send(bob, "hello"); } void bobProc () { receive( (string s) { writeln(s); } ); }
Just to rule this out, can you try if this also occurs with LDC 1.3.0
final? I remember there were some issues with the betas, although I
don't know if those were related.