package picos
Pico scheduler interface
Install
dune-project
Dependency
Authors
Maintainers
Sources
picos-0.4.0.tbz
sha256=343a8b4759239ca0c107145b8e2cc94c14625fecc0b0887d3c40a9ab7537b8da
sha512=db22b0a5b3adc603c0e815c9011c779f892b9ace76be018b2198d3e24a7d96727c999701025fe5a5fd07d0b452cb7286fc50c939aba0e4dce809941e9ebc12a6
doc/CHANGES.html
0.4.0
- Renamed
Picos_mpsc_queuetoPicos_mpscq. (@polytypic) Core API changes:
- Added
Computation.returned. (@polytypic)
- Added
Lwtinterop improvements:- Fixed
Picos_lwthandling ofCancel_afterto not raise in case of cancelation. (@polytypic) - Redesigned
Picos_lwtto take aSystemmodule, which must implement a semi thread-safe trigger mechanism to allow unblockingLwtpromises on the main thread. (@polytypic) - Added
Picos_lwt_unixinterface toLwt, which includes an internalSystemmodule implemented usingLwt_unix. (@polytypic) - Dropped thunking from
Picos_lwt.await. (@polytypic)
- Fixed
- Added a randomized multicore scheduler
Picos_randosfor testing. (@polytypic) - Changed
Picos_select.check_configuredto always (re)configure signal handling on the current thread. (@polytypic) Picos_structured:- Added a minimalistic
Promiseabstraction. (@polytypic) - Changed to more consistently not treat
Terminateas an error. (@polytypic)
- Added a minimalistic
- Changed schedulers to take
~forbidas an optional argument. (@polytypic) - Various minor additions, fixes, and documentation improvements. (@polytypic)
0.3.0
Core API changes:
- Added
Fiber.set_computation, which represents a semantic change - Renamed
Fiber.computationtoFiber.get_computation - Added
Computation.attach_canceler - Added
Fiber.sleep - Added
Fiber.create_packed - Removed
Fiber.try_attach - Removed
Fiber.detach
Most of the above changes were motivated by work on and requirements of the added structured concurrency library (@polytypic)
- Added
- Added a basic user level structured concurrent programming library
Picos_structured(@polytypic) - Added a functorized
Picos_lwtproviding direct style effects based interface to programming with Lwt (@polytypic) - Added missing
Picos_stdio.Unix.select(@polytypic)
0.2.0
- Documentation fixes and restructuring (@polytypic)
- Scheduler friendly
waitpid,wait, andsysteminPicos_stdio.Unixfor platforms other than Windows (@polytypic) - Added
Picos_select.configureto allow, and sometimes require, configuringPicos_selectfor co-operation with libraries that also deal with signals (@polytypic) - Moved
Picos_tlsintoPicos_thread.TLS(@polytypic) - Enhanced
sleepandsleepfinPicos_stdio.Unixto block in a scheduler friendly manner (@polytypic)
0.1.0
First experimental release of Picos.
Core:
picos— A framework for interoperable effects based concurrency.
Sample schedulers:
picos.fifos— Basic single-threaded effects based Picos compatible scheduler for OCaml 5.picos.threaded— BasicThreadbased Picos compatible scheduler for OCaml 4.
Scheduler agnostic libraries:
picos.sync— Basic communication and synchronization primitives for Picos.picos.stdio— Basic IO facilities based on OCaml standard libraries for Picos.picos.select— BasicUnix.selectbased IO event loop for Picos.
Auxiliary libraries:
picos.domain— Minimalistic domain API available both on OCaml 5 and on OCaml 4.picos.exn_bt— Wrapper for exceptions with backtraces.picos.fd— Externally reference counted file descriptors.picos.htbl— Lock-free hash table.picos.mpsc_queue— Multi-producer, single-consumer queue.picos.rc— External reference counting tables for disposable resources.picos.tls— Thread-local storage.