digitalmars.D.learn - concurrency send() error
- John Colvin (38/38) Dec 07 2012 I was messing about with std.concurrency and ran in to this:
- Dmitry Olshansky (6/11) Dec 07 2012 It looks like a bug and it smells like a bug. I'd say it's a bug :)
I was messing about with std.concurrency and ran in to this:
http://dpaste.dzfl.pl/5655cbbe
copied out for those who don't want to go to dpaste:
import std.concurrency;
import std.stdio;
void main() {
double[] a,b;
a = [1.1];
b = [2.2];
int i= 3;
auto tid = spawn(&foo);
tid.send(a.idup, b.idup); //works, no problem
tid.send(a.idup, i); //so does this
tid.send(a.idup, b.idup, i); //core.exception.AssertError
std/variant.d(277): target must be non-null
}
void foo() {
bool running = true;
while(running) {
receive(
(immutable(double)[] a, int i) {
writeln(a, i);
},
(immutable(double)[] a, immutable(double)[] b, int i) {
writeln(a, b, i);
},
(immutable(double)[] a, immutable(double)[] b) {
writeln(a, b);
},
(OwnerTerminated e) {
running = false;
}
);
}
}
This seems like a bug to me, but I don't know std.concurrency
well enough to be sure.
Dec 07 2012
12/7/2012 4:40 PM, John Colvin пишет:I was messing about with std.concurrency and ran in to this: http://dpaste.dzfl.pl/5655cbbe copied out for those who don't want to go to dpaste:[snip]This seems like a bug to me, but I don't know std.concurrency well enough to be sure.It looks like a bug and it smells like a bug. I'd say it's a bug :) Please go ahead and file it. -- Dmitry Olshansky
Dec 07 2012








Dmitry Olshansky <dmitry.olsh gmail.com>