Restore old locking scheme changed with
commit
1e92df6b20aa2240.
This seems to prevent a very rare crash that occurs
once every 5-10K games.
With this patch we have no crashes after 33K games.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
{
assert((!sp && threadID) || Threads.use_sleeping_threads());
{
assert((!sp && threadID) || Threads.use_sleeping_threads());
- // Grab the lock to avoid races with Thread::wake_up()
- lock_grab(&sleepLock);
-
// Slave thread should exit as soon as do_terminate flag raises
if (do_terminate)
{
assert(!sp);
// Slave thread should exit as soon as do_terminate flag raises
if (do_terminate)
{
assert(!sp);
- lock_release(&sleepLock);
+ // Grab the lock to avoid races with Thread::wake_up()
+ lock_grab(&sleepLock);
+
// If we are master and all slaves have finished don't go to sleep
if (sp && all_slaves_finished(sp))
{
// If we are master and all slaves have finished don't go to sleep
if (sp && all_slaves_finished(sp))
{