Re:The Various Kinds of IO – Blocking, Non-Blocking, Multipl...
by Tarean on Monday May 07, 2018 @12:26PM
(#17014033)
Haskell does async IO by default using green threads. GHC allocates Thread State Objects which completely represent a (green) thread on the heap.
A capabillity which represents a cpu core contains a queue of TSO's. If a thread blocks on something it can also move to a different queue which is used for thread synchronization, blocking on computations from other threads, io etc.
A capabillity which represents a cpu core contains a queue of TSO's. If a thread blocks on something it can also move to a different queue which is used for thread synchronization, blocking on computations from other threads, io etc.