writeln() sometimes double prints from main() if I run a thread checking for input?
Timothy Foster via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Wed Aug 30 03:13:57 PDT 2017
I'm not sure if this is a known issue, or if I just don't
understand how to use threads, but I've got writeln statements
sometimes printing out twice in some areas of my code. It seems
to only happen when I start a thread that checks for input with
stdin.byLineCopy (I'm not sure of the internal workings of it so
that may be the issue)
The setup is basically this:
void main(){
auto thread = Thread(&func).start;
writeln("Output");
...
}
void func(){
foreach (line; stdin.byLineCopy) {
...
}
}
Some of the time it will print out "Output" and some of the time
it will print out
"Output
Output"
Does anyone know what is causing this or how I can fix it?
More information about the Digitalmars-d-learn
mailing list