| ... | @@ -129,12 +129,12 @@ must adhere to the rules of that option as well. |
... | @@ -129,12 +129,12 @@ must adhere to the rules of that option as well. |
|
|
|
|
|
|
|
The standard only requires a progress guarentee, that a thread is always
|
|
The standard only requires a progress guarentee, that a thread is always
|
|
|
running, making progress. If an implementation supports context switching
|
|
running, making progress. If an implementation supports context switching
|
|
|
during arbitrary, perhaps even pure, computations and meets the stronger
|
|
during arbitrary computations and meets the stronger
|
|
|
fairness guarentees, then it can be said to support the 'Preemption' option.
|
|
fairness guarentee below, then it can be said to support the 'Preemption' option.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Fairness Guarentee
|
|
Fairness Guarentee
|
|
|
|
|
|
|
|
|
|
|
|
|
- no starvation
|
|
- no starvation
|
| ... | @@ -143,16 +143,16 @@ Fairness Guarentee |
... | @@ -143,16 +143,16 @@ Fairness Guarentee |
|
|
new library calls provided
|
|
new library calls provided
|
|
|
|
|
|
|
|
|
|
|
|
|
- mergeIO, nmergeIO
|
|
- `mergeIO`, `nmergeIO`
|
|
|
|
|
|
|
|
## Optional Feature 2 - OS threads
|
|
## Optional Feature 2 - OS threads
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The implementation allows multiple haskell threads to run at once via the
|
|
The implementation additionally allows the following:
|
|
|
operating systems threading service. May take advantange of SMP architectures.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- forkOS,isCurrentThreadBound,runInBoundThread,runInUnboundThread
|
|
- `foreign export`ed functions, and function pointers created by `foreign import "wrapper"`,
|
|
|
- bound threads
|
|
can be invoked from multiple OS threads
|
|
|
- concurrent reentrant supported |
|
- bound threads: `forkOS`, `isCurrentThreadBound`, `runInBoundThread`, `runInUnboundThread`
|
|
|
|
- concurrent/reentrant foreign calls are supported |