Skip to content
Snippets Groups Projects
Unverified Commit 7471a6c0 authored by Sylvain Henry's avatar Sylvain Henry Committed by Zubin
Browse files

RTS: try to fix timer races

* Pthread based timer was initialized started while some other parts of
  the RTS assume it is initialized stopped, e.g. in hs_init_ghc:

     /* Start the "ticker" and profiling timer but don't start until the
     * scheduler is up. However, the ticker itself needs to be initialized
     * before the scheduler to ensure that the ticker mutex is initialized as
     * moreCapabilities will attempt to acquire it.
     */

* after a fork, don't start the timer before the IOManager is
  initialized: the timer handler (handle_tick) might call wakeUpRts to
  perform an idle GC, which calls wakeupIOManager/ioManagerWakeup

Found while debugging #18033/#20132 but I couldn't confirm if it fixes
them.

(cherry picked from commit 5f3991c7)
parent 844a55d3
No related branches found
No related tags found
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment