Skip to content

Per-thread Haskell thread list/numbering (remove global lock from thread allocation)

Currently, we take out the scheduler lock when a thread is allocated, in order to make sure we allocate a fresh thread ID and can attach it to the global thread list in the nursery. If we partition the thread ID space per originating capability and maintain thread lists per OS thread, we can remove this lock.

Marking low priority because no one seems to be running into this as their particular scaling problem (and there may be other reasons why high thread churn doesn't scale across cores).

Trac metadata
Trac field Value
Version 7.9
Type Bug
TypeOfFailure OtherFailure
Priority low
Resolution Unresolved
Component Runtime System
Test case
Differential revisions
BlockedBy
Related
Blocking
CC simonmar
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information