package picos_mux

  1. Overview
  2. Docs
Sample schedulers for Picos

Install

Dune Dependency

Authors

Maintainers

Sources

picos-0.5.0.tbz
sha256=862d61383e2df93a876bedcffb1fd1ddc0f96c50b0e9c07943a2aee1f0e182be
sha512=87805379017ef4a7f2c11b954625a3757a0f1431bb9ba59132202de278b3e41adbe0cdc20e3ab23b7c9a8c5a15faeb7ec79348e7d80f2b14274b00df0893b8c0

doc/picos_mux.fifo/Picos_mux_fifo/index.html

Module Picos_mux_fifoSource

Basic single-threaded effects based Picos compatible scheduler for OCaml 5.

This scheduler uses a queue specifically optimized for a single-threaded scheduler to implement a basic FIFO scheduler. This scheduler also gives priority to fibers woken up due to being canceled.

🐌 Due to FIFO scheduling this scheduler performs poorly on highly parallel workloads.

ℹ️ See Picos_std_multififos for a multi-threaded variation of this scheduler.

ℹ️ This scheduler implementation is mostly meant as an example and for use in testing libraries implemented in Picos.

⚠️ This scheduler uses Picos_io_select internally. If running multiple threads that each run this scheduler, Picos_io_select.configure must be called by the main thread before creating other threads.

Sourceval run_fiber : ?quota:int -> ?fatal_exn_handler:(exn -> unit) -> Picos.Fiber.t -> (Picos.Fiber.t -> unit) -> unit

run_fiber fiber main runs the main program as the specified fiber and returns after main and all of the fibers spawned by main have returned.

The optional quota argument defaults to Int.max_int and determines the number of effects a fiber is allowed to perform before it is forced to yield.

Sourceval run : ?quota:int -> ?fatal_exn_handler:(exn -> unit) -> ?forbid:bool -> (unit -> 'a) -> 'a

run main is equivalent to calling run_fiber with a freshly created fiber and main wrapped to capture the result of main.

The optional forbid argument defaults to false and determines whether propagation of cancelation is initially allowed.

OCaml

Innovation. Community. Security.