I was using David Beazley's reference and saw a comment that says it isn't thread safe, but I must admit that my repro doesn't work for CPython.
anyway, opened codeplex item: http://www.codeplex.com/IronPython/WorkItem/View.aspx?WorkItemId=18926 On Tue, Oct 14, 2008 at 1:12 AM, Curt Hagenlocher <[EMAIL PROTECTED]>wrote: > The underlying problem in the Python code is likely to be because of the > behavior of the "random" function in the C library. And for us, this is > actually a problem in the BCL. Someone just posted the exact same behavior > to an internal mailing list, but from a C# program. They wrote: "I just > encountered this behavior of Random.Next(): if I create one Random object > and call Next() from one thread (doesn't need to be the main thread), > everything works fine. However, if I create one Random object and call > Next() on it from two or more threads, after a while it will start to return > 0 all the time, and its internal SeedArray becomes all 0." > > The Python library contains a comment which reads "The random() method is > implemented in C, executes in a single Python step, and is, therefore, > threadsafe" so arguably, this is a bug in the _random module of IronPython. > Please report it to CodePlex. > > On Mon, Oct 13, 2008 at 1:57 PM, Ronnie Maor <[EMAIL PROTECTED]>wrote: > >> problem was caused by calling random from several threads without locking. >> it reproduces more easily in IPy than in CPython because of the GIL, but >> it's documented as not thread safe for CPython too. >> >> On Sun, Oct 12, 2008 at 11:27 AM, Asaf Kleinbort <[EMAIL PROTECTED]>wrote: >> >>> Hi, >>> >>> We have encountered two strange errors in the 'random' module: >>> >>> 1. At some point the random method 'getrandbits(63)' started (and >>> kept) returning 0 – until we restarted the application. >>> >>> 2. The random method 'shuffle' when applied on a list kept >>> returning the same ordered list. Again – restarting the application solved >>> the problem >>> >>> An interesting remark is that issue #1 happened to us today in two >>> different applications, around the same time. >>> >>> Any ideas? >>> >>> Thanks, >>> >>> Asaf >>> >>> _______________________________________________ >>> Users mailing list >>> [email protected] >>> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com >>> >>> >> >> _______________________________________________ >> Users mailing list >> [email protected] >> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com >> >> > > _______________________________________________ > Users mailing list > [email protected] > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > >
_______________________________________________ Users mailing list [email protected] http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
