[Issue 8774] 2.059 worked 2.060 does not: Unable to join thread
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Sun Dec 23 02:34:42 PST 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8774
--- Comment #10 from Dmitry Olshansky <dmitry.olsh at 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 at 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: -------
More information about the Digitalmars-d-bugs
mailing list