How to spawn variable-length functions?
Andrej Mitrovic
none at none.none
Tue Apr 26 11:48:46 PDT 2011
import std.stdio;
import std.concurrency;
void print(int[] a...)
{
foreach(b; a)
writeln(b);
}
void main()
{
int value;
spawn(&writeln, value);
spawn(&print, value);
}
Neither of these calls will work. I want to continuously print some values but without blocking the thread that issues the call to print, and without using locks. Since it's a print function I need it to take a variable number of arguments.
How do I go around doing this? Perhaps I could use some kind of global Variant[] that is filled with values, and a foreground thread pops each value as it comes in and prints it?
Or maybe I should use send()?
I'm looking for something fast which doesn't slow down or pause the work thread.
Multithreading is hard business. :]
More information about the Digitalmars-d-learn
mailing list