| ... | ... | @@ -2,20 +2,20 @@ |
|
|
|
|
|
|
|
## References
|
|
|
|
|
|
|
|
- [ Draft report addendum](http://www.haskell.org/ghc/docs/papers/threads.ps.gz) describing GHC's concurrency and the interaction with the FFI.
|
|
|
|
- [ A Draft report addendum](http://www.haskell.org/ghc/docs/papers/threads.ps.gz) describing the interaction between GHC's concurrency and the FFI.
|
|
|
|
- The [ Control.Concurrency](http://www.haskell.org/ghc/docs/latest/html/libraries/base/Control-Concurrent.html) module
|
|
|
|
- [ Software Transactional Memory](http://research.microsoft.com/~simonpj/papers/stm/)
|
|
|
|
- [ForeignBlocking](foreign-blocking)
|
|
|
|
|
|
|
|
## Pros
|
|
|
|
|
|
|
|
- Vital for some modern applications
|
|
|
|
- Large applications commonly require it
|
|
|
|
- Vital for some modern applications and large applications commonly require it
|
|
|
|
- Stable MVar implementation is well understood and tested
|
|
|
|
|
|
|
|
## Cons
|
|
|
|
|
|
|
|
- imposes non trivial implementation constraints.
|
|
|
|
- providing a 'select' and non-blocking IO would be enough to allow people to implement something like it themselves in haskell and are provided by most systems as primitives.
|
|
|
|
- Imposes non trivial implementation constraints.
|
|
|
|
- Providing a 'select' and non-blocking IO would be enough to allow people to implement something like it themselves in haskell and are provided by most systems as primitives.
|
|
|
|
- Things like the 'poor man's concurrency monad' can achieve some of the benefits
|
|
|
|
- only one implementation exists, design space not very well explored.
|
|
|
|
- Unsure at this point if new STM will replace older MVar-style concurrency |