From: Marco Costalba Date: Wed, 31 Jul 2013 04:59:24 +0000 (+0200) Subject: Fix a race at thread creation X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=4d46d29efe4ee496bda2aa7ea83184d502944852;hp=4d46d29efe4ee496bda2aa7ea83184d502944852 Fix a race at thread creation At thread creation start_routine() is called and from there the virtual function idle_loop() because we do this inside Thread c'tor, where the virtual mechanism is disabled, it could happen that the base class idle_loop() is called instead. The issue happens with TimerThread and MainThread where, at launch, start_routine calls Thread::idle_loop instead of the derived ones. Normally this bug is hidden because c'tor finishes before start_routine() is actually called in the just created execution thread, but on some platforms and in some cases this is not guaranteed and the engine hangs. Reported by Ted Wong on talkchess No functional change. ---