[Haskell-cafe] Re: concurrent haskell: thread priorities

Neal Alexander wqeqweuqy at hotmail.com
Tue Dec 23 06:00:07 EST 2008

Bulat Ziganshin wrote:
> Hello Neal,
> Monday, December 22, 2008, 11:07:32 PM, you wrote:
>> The threaded RT creates an OS thread for each CPU/core on the system and
>> uses them to multiplex userland threads. These are context switched 
>> whenever they block/yield/gc and no priorities can be assigned.
> not exactly. amount of OS threads created controlled by +RTS -N option
> to the program; unless program has special function that RTS calls to
> set up this value
> they are switched on every minor GC which by default occurs after
> each 256kb allocated which is rather frequent event
>> It seems like we could get some priority based scheduling (and still be
>> slackers) if we allow marked green threads to be strictly associated 
>> with a specific OS thread (forkChildIO?).
> forkOS creates new haskell thread and new OS thread specially for it

The docs say that the forkOS thread is still scheduled by the Haskell RT 
though. What would happen if you bump its priority through FFI?

What about this scenario:

forkOS = OS thread A1, Haskell Thread A2
forkIO = Haskell thread B

Could thread B potentially be run on thread A1? Would the RT yield 
thread A2 to give time to another Haskell thread?

More information about the Haskell-Cafe mailing list