Changelog of @hackage/scheduler 2.0.0.1

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.