
Hi, Just read a post about schedulers in erlang and go lang, which informed me that erlang is preemptive and go lang is cooperative. So which is used by GHC? From ghc wiki about rts, if the question is only within haskell threads, it seems like cooperative. -- 竹密岂妨流水过 山高哪阻野云飞 And for G+, please use magiclouds#gmail.com.

On 16/01/13 08:32, Magicloud Magiclouds wrote:
Hi, Just read a post about schedulers in erlang and go lang, which informed me that erlang is preemptive and go lang is cooperative. So which is used by GHC? From ghc wiki about rts, if the question is only within haskell threads, it seems like cooperative.
GHC is pre-emptive, but see http://hackage.haskell.org/trac/ghc/ticket/367. Cheers, Simon

Excerpts from Magicloud Magiclouds's message of Wed Jan 16 00:32:00 -0800 2013:
Hi, Just read a post about schedulers in erlang and go lang, which informed me that erlang is preemptive and go lang is cooperative. So which is used by GHC? From ghc wiki about rts, if the question is only within haskell threads, it seems like cooperative.
Additionally, the current scheduler is round-robin with some heuristics for when threads get to "cut the line", so we do not have priorities for threads. I'm currently working on a patch which allows for more flexible scheduling. Edward
participants (3)
-
Edward Z. Yang
-
Magicloud Magiclouds
-
Simon Marlow