Magicloud Magiclouds | 16 Jan 09:32 2013
Picon

What is the scheduler type of GHC?

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.
_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users <at> haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Simon Marlow | 16 Jan 11:23 2013
Picon

Re: What is the scheduler type of GHC?

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
Edward Z. Yang | 16 Jan 20:26 2013
Picon

Re: What is the scheduler type of GHC?

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

Gmane