| ... | ... | @@ -52,7 +52,16 @@ necessarily 'concurrent reentrant' ones. |
|
|
|
- if any haskell thread is runnable then at least one thread will be running.
|
|
|
|
- foreign calls marked 'concurrent' will not interfere will the above rule.
|
|
|
|
|
|
|
|
## MVar Guarentees
|
|
|
|
|
|
|
|
Additionally, we have a fairness property of `MVar`s:
|
|
|
|
|
|
|
|
- A thread blocked on an `MVar` will eventually run, provided there are no other
|
|
|
|
threads holding the `MVar` indefinitely.
|
|
|
|
|
|
|
|
|
|
|
|
This means that `MVar` blocking must be implemented in a fair way, eg. a FIFO of blocked threads.
|
|
|
|
|
|
|
|
## `MVar` Guarentees
|
|
|
|
|
|
|
|
|
|
|
|
initial proposal is here:
|
| ... | ... | |