http://d.puremagic.com/issues/show_bug.cgi?id=2977
Summary: std.random.unpredictableSeed() should use thread ID
somewhere
Product: D
Version: 2.030
Platform: PC
OS/Version: Windows
Status: NEW
Severity: normal
Priority: P2
Component: Phobos
AssignedTo: [email protected]
ReportedBy: [email protected]
uint unpredictableSeed()
{
static bool seeded;
static MinstdRand0 rand;
if (!seeded) {
rand.seed(getpid ^ cast(uint)getUTCtime);
seeded = true;
}
rand.popFront;
return cast(uint) (getUTCtime ^ rand.front);
}
If called from multiple threads at exactly the same time, unpredictableSeed
gives every thread the same seed. This is annoying when running the same monte
carlo simulation simultaneously in multiple threads, since I tend to spawn all
of the threads at exactly the same time. Something like:
(getpid + cast(uint) Thread.getThis) ^ cast(uint) getUTCtime
might work well.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------