Library
Module
Module type
Parameter
Class
Class type
include module type of struct include Async_kernel end
Contains Async's core data structures, like Deferred
, Ivar
, and Clock
.
Async_kernel
is designed to depend only on Core_kernel
(as opposed to Core
), and so is more platform-independent.
module Async_kernel_config = Async_kernel.Async_kernel_config
module Async_kernel_persistent_connection =
Async_kernel.Async_kernel_persistent_connection
module Async_kernel_require_explicit_time_source =
Async_kernel.Async_kernel_require_explicit_time_source
module Async_kernel_scheduler = Async_kernel.Async_kernel_scheduler
module Bvar = Async_kernel.Bvar
module Clock_ns = Async_kernel.Clock_ns
module Condition = Async_kernel.Condition
module Deferred = Async_kernel.Deferred
module Eager_deferred = Async_kernel.Eager_deferred
module Execution_context = Async_kernel.Execution_context
module Gc = Async_kernel.Gc
module Invariant = Async_kernel.Invariant
module Ivar = Async_kernel.Ivar
module Quickcheck = Async_kernel.Quickcheck
module Lazy_deferred = Async_kernel.Lazy_deferred
module Limiter = Async_kernel.Limiter
module Monad_sequence = Async_kernel.Monad_sequence
module Monitor = Async_kernel.Monitor
module Mvar = Async_kernel.Mvar
module Pipe = Async_kernel.Pipe
module Priority = Async_kernel.Priority
module Sequencer = Async_kernel.Sequencer
module Stream = Async_kernel.Stream
module Synchronous_time_source = Async_kernel.Synchronous_time_source
module Tail = Async_kernel.Tail
module Throttle = Async_kernel.Throttle
module Time_source = Async_kernel.Time_source
module Use_eager_deferred = Async_kernel.Use_eager_deferred
Intended usage is to open Use_eager_deferred
to shadow operations from the non-eager world and rebind them to their eager counterparts.
The functions below are broadly useful when writing Async programs, and so are made available at the toplevel.
val catch :
((unit -> unit) -> exn Monitor.Deferred.t) Monitor.with_optional_monitor_name
val choice : 'a Deferred.t -> ('a -> 'b) -> 'b Deferred.Choice.t
val choose : 'a Deferred.Choice.t list -> 'a Deferred.t
val don't_wait_for : unit Deferred.t -> unit
val never : unit -> 'a Deferred.t
val try_with :
(?extract_exn:bool ->
?run:[ `Now | `Schedule ] ->
?rest:[ `Call of exn -> unit | `Log | `Raise ] ->
(unit -> 'a Monitor.Deferred.t) ->
('a, exn) Core_kernel.Result.t Monitor.Deferred.t)
Monitor.with_optional_monitor_name
val upon : 'a Deferred.t -> ('a -> unit) -> unit
Let_syntax
supportinclude Core_kernel.Monad.Infix with type 'a t := 'a Deferred.t
equivalent to Deferred.upon
.
val (>>=?) :
('a, 'b) Deferred.Result.t ->
('a -> ('c, 'b) Deferred.Result.t) ->
('c, 'b) Deferred.Result.t
equivalent to Deferred.Result.bind
.
val (>>|?) :
('a, 'b) Deferred.Result.t ->
('a -> 'c) ->
('c, 'b) Deferred.Result.t
equivalent to Deferred.Result.map
.
include module type of struct include Deferred.Let_syntax end
val return : 'a -> 'a Async_kernel.Deferred.t
val (>>=) :
'a Async_kernel.Deferred.t ->
('a -> 'b Async_kernel.Deferred.t) ->
'b Async_kernel.Deferred.t
t >>= f
returns a computation that sequences the computations represented by two monad elements. The resulting computation first does t
to yield a value v
, and then runs the computation returned by f v
.
val (>>|) :
'a Async_kernel.Deferred.t ->
('a -> 'b) ->
'b Async_kernel.Deferred.t
t >>| f
is t >>= (fun a -> return (f a))
.
module Let_syntax = Async_kernel.Let_syntax
include module type of struct include Async_unix end
module Async_config = Async_unix.Async_config
module Clock = Async_unix.Clock
module Dump_core_on_job_delay = Async_unix.Dump_core_on_job_delay
module Fd = Async_unix.Fd
module In_thread = Async_unix.In_thread
module Io_stats = Async_unix.Io_stats
module Log = Async_unix.Log
module Print = Async_unix.Print
module Process = Async_unix.Process
module Reader = Async_unix.Reader
module Require_explicit_time_source = Async_unix.Require_explicit_time_source
module Scheduler = Async_unix.Scheduler
module Shutdown = Async_unix.Shutdown
module Signal = Async_unix.Signal
module Socket = Async_unix.Socket
module Sys = Async_unix.Sys
module Thread_safe = Async_unix.Thread_safe
module Thread_safe_pipe = Async_unix.Thread_safe_pipe
module Writer = Async_unix.Writer
module Unix = Async_unix.Unix
val after : Core.Time.Span.t -> unit Async_kernel__.Types.Deferred.t
val at : Core.Time.t -> unit Async_kernel__.Types.Deferred.t
val every :
?start:unit Async_kernel__.Types.Deferred.t ->
?stop:unit Async_kernel__.Types.Deferred.t ->
?continue_on_error:bool ->
Core.Time.Span.t ->
(unit -> unit) ->
unit
val with_timeout :
Core.Time.Span.t ->
'a Async_kernel__.Types.Deferred.t ->
[ `Result of 'a | `Timeout ] Async_kernel__.Types.Deferred.t
val schedule : ((unit -> unit) -> unit) Scheduler.with_options
val schedule' :
((unit -> 'a Async_kernel.Deferred.t) ->
'a Async_kernel.Deferred.t)
Scheduler.with_options
val shutdown : ?force:unit Async_kernel.Deferred.t -> int -> unit
val within : ((unit -> unit) -> unit) Scheduler.with_options
val within' :
((unit -> 'a Async_kernel.Deferred.t) ->
'a Async_kernel.Deferred.t)
Scheduler.with_options
module Printf = Async_unix.Printf
include sig ... end
module Overwrite_ = Async_unix.Overwrite_
val eprintf : ('a, unit, string, unit) Pervasives.format4 -> 'a
val fprintf :
Async_unix.Writer.t ->
('a, unit, string, unit) Pervasives.format4 ->
'a
val ifprintf : 'a -> ('b, 'a, 'c, unit) Pervasives.format4 -> 'b
val printf : ('a, unit, string, unit) Pervasives.format4 -> 'a
val print_s : ?mach:unit -> Sexplib.Sexp.t -> unit
module LargeFile = Async_unix.LargeFile
module Sexp = Async_unix.Sexp
val exit :
?force:unit Async_kernel.Deferred.t ->
int ->
'a Async_kernel.Deferred.t
include module type of struct include Async_extra end
module Bus = Async_extra.Bus
module Command = Async_extra.Command
module Lock_file = Async_extra.Lock_file
module Persistent_connection = Async_extra.Persistent_connection
module Rpc = Async_extra.Rpc
module Schedule_v5 = Async_extra.Schedule_v5
module Schedule_v4_deprecated = Async_extra.Schedule_v4_deprecated
module Tcp = Async_extra.Tcp
module Udp = Async_extra.Udp
module User_and_group = Async_extra.User_and_group
module Versioned_rpc = Async_extra.Versioned_rpc
module Weak_hashtbl = Async_extra.Weak_hashtbl
module Expect_test_config :
Expect_test_config.S with type 'a IO.t = 'a Deferred.t