[fpc-devel] Random thread-safe
Jonas Maebe
jonas.maebe at elis.ugent.be
Thu Jan 28 13:30:02 CET 2016
Ondrej Pokorny wrote on Thu, 28 Jan 2016:
> Regarding: http://bugs.freepascal.org/view.php?id=29526 (because I
> cannot answer on closed issues).
>
>>> Also: the entire state of the random number generator consists of
>>> regular global variables, so it is not safe to use it from
>>> multiple threads in parallel.
>
> Would it make sense to you to make random thread-safe? E.g. with the
> use of "threadvar" instead of "var" for the global variables in
> question?
No. The Mersenne twister has a lot of state (about 2KB). Duplicating
this for every thread, along with associated slowdown, is not worth
it. It's better to use a class that encapsulates the state of a random
number generator and then instantiate this class for every thread.
Jonas
More information about the fpc-devel
mailing list