[Issue 17476] New: Static fields don't seem to be reliably initialized when using parallel()
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Wed Jun 7 04:47:06 PDT 2017
https://issues.dlang.org/show_bug.cgi?id=17476
Issue ID: 17476
Summary: Static fields don't seem to be reliably initialized
when using parallel()
Product: D
Version: D2
Hardware: x86_64
OS: Linux
Status: NEW
Severity: major
Priority: P1
Component: phobos
Assignee: nobody at puremagic.com
Reporter: andrej.mitrovich at gmail.com
```
import std.stdio;
import std.parallelism;
struct Params
{
static string path = "/some/string/initializer";
}
void main()
{
Params.path = "foobar";
foreach (_; parallel([1, 2, 3, 4]))
{
writefln("%s", Params.path);
}
}
```
Run this a few times, and each time the results will be wildly different:
```
~/dev/d test.d * $ dmd -run test.d
foobar
/some/string/initializer
/some/string/initializer
/some/string/initializer
~/dev/d test.d * $ dmd -run test.d
/some/string/initializer
foobar
/some/string/initializer
/some/string/initializer
~/dev/d test.d * $ dmd -run test.d
foobar
foobar
/some/string/initializer
/some/string/initializer
```
--
More information about the Digitalmars-d-bugs
mailing list