# 2.0.0 * Switch type parameter of `Scheduler` from monad `m` to state token `s`. Which also means that constraints on many functions got tighter (i.e. `MonadPrim`, `MonadPrimBase`) * Remove `m` type parameter for `SchedulerWS`, since it can only work in `IO` like monad anyways. * Switch type parameter of `Batch` from monad `m` to state token `s`. * Swap order of arguments for `replicateWork` for consistency * Add `replicateWork_` that is slightly more efficient than `replicateWork` # 1.5.0 Despite that the major part of the version was bumped up, this release does not include any breaking changes, only improvements and additions. * Addition of a batch concept with `BacthId` which: * makes it possible for a `Scheduler` to be "resumable" with the help of `waitForBatch`, `waitForBatch_` and `waitForBatchR` * allows to cancel batches prematurely while keeping the results and not terminating the scheduler itself. This can be done with new functions: `cancelBatch` and `cancelBatchWith`. In order to check for batch status `getCurrentBatchId` and `hasBatchFinished` functions can be used. * Addition of `GlobalScheduler` that can be reused throughout the codebase, thus reducing initialization overhead. # 1.4.2 * Add `withTrivialScheduler` * Add `Results` data type as well as corresponding functions: * `withSchedulerR` * `withSchedulerWSR` * `withTrivialSchedulerR` # 1.4.1 * Add functions: `replicateWork` # 1.4.0 * Worker id has been promoted from `Int` to a `newtype` wrapper `WorkerId`. * Addition of `SchedulerWS` and `WorkerStates` data types. As well as the related `MutexException` * Functions that came along with stateful worker threads: * `initWorkerStates` * `workerStatesComp` * `scheduleWorkState` * `scheduleWorkState_` * `withSchedulerWS` * `withSchedulerWS_` * `unwrapSchedulerWS` * Made internal modules accessible, but invisible. # 1.3.0 * Make sure internal `Scheduler` accessor functions are no longer exported, they only cause breakage. * Make sure number of capabilities does not change through out the program execution, as far as `scheduler` is concerned. # 1.2.0 * Addition of `scheduleWorkId` and `scheduleWorkId_` # 1.1.0 * Add functions: `replicateConcurrently` and `replicateConcurrently_` * Made `traverseConcurrently_` lazy, thus making it possible to apply to infinite lists and other such foldables. * Fix `Monoid` instance for `Comp` * Addition of `Par'` pattern # 1.0.0 Initial release.