http://d.puremagic.com/issues/show_bug.cgi?id=8774
--- Comment #10 from Dmitry Olshansky <dmitry.o...@gmail.com> 2012-12-23 02:32:18 PST --- (In reply to comment #8) > Here is a simple test case: > > ----- > > module program; > > import std.stdio; > import core.thread; > > void main () { > > Thread t1, t2; > > t1 = new Thread(delegate { t2.start(); }); > t2 = new Thread(delegate { Thread.sleep(dur!"seconds"(1)); }); > > t1.start(); > t2.join(); > > } > > ----- > > http://dpaste.dzfl.pl/0d24dd06 > > output: > core.thread.ThreadException@src/core/thread.d(780): Unable to join thread > > if t2.join occurs after t2 already finished then exception is not thrown, > hence > the sleep This one is a genuine race condition: t2.join could be called before t2 is actually started by t1. And as far as I can tell this is the *most* *probable* outcome. So it can't be seriously taken as test case without proper synchronization between threads. What it shows though is that you can't join a thread that isn't started and the error is "Unable to join thread". -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------