Module Async_extra.Bus
An Async extension of Core_kernel.Bus. Functions that share the same name and types as those in Core_kernel.Bus are direct calls to same.
include module type of sig ... end
type ('callback, 'phantom) t= ('callback, 'phantom) Core_kernel__Bus.t
val sexp_of_t : ('callback -> Ppx_sexp_conv_lib.Sexp.t) -> ('phantom -> Ppx_sexp_conv_lib.Sexp.t) -> ('callback, 'phantom) t -> Ppx_sexp_conv_lib.Sexp.t
type ('callback, 'phantom) bus= ('callback, 'phantom) t
module Read_write = Core_kernel__Bus.Read_writemodule Read_only = Core_kernel__Bus.Read_onlyval read_only : ('callback, 'a) t -> 'callback Read_only.tval create : ?name:Core_kernel.Info.t -> Core_kernel.Source_code_position.t -> 'callback Callback_arity.t -> on_subscription_after_first_write:On_subscription_after_first_write.t -> on_callback_raise:(Core_kernel.Error.t -> Core_kernel__.Import.unit) -> 'callback Read_write.tval callback_arity : ('callback, 'a) t -> 'callback Callback_arity.tval num_subscribers : ('a, 'b) t -> Core_kernel__.Import.intval is_closed : ('a, 'b) t -> Core_kernel__.Import.boolval close : 'callback Read_write.t -> Core_kernel__.Import.unitval write : ('a -> Core_kernel__.Import.unit) Read_write.t -> 'a -> Core_kernel__.Import.unitval write2 : ('a -> 'b -> Core_kernel__.Import.unit) Read_write.t -> 'a -> 'b -> Core_kernel__.Import.unitval write3 : ('a -> 'b -> 'c -> Core_kernel__.Import.unit) Read_write.t -> 'a -> 'b -> 'c -> Core_kernel__.Import.unitval write4 : ('a -> 'b -> 'c -> 'd -> Core_kernel__.Import.unit) Read_write.t -> 'a -> 'b -> 'c -> 'd -> Core_kernel__.Import.unit
module Subscriber = Core_kernel__Bus.Subscriberval subscribe_exn : ?extract_exn:Core_kernel__.Import.bool -> ?on_callback_raise:(Core_kernel.Error.t -> Core_kernel__.Import.unit) -> ?on_close:(Core_kernel__.Import.unit -> Core_kernel__.Import.unit) -> 'callback Read_only.t -> Core_kernel.Source_code_position.t -> f:'callback -> 'callback Subscriber.tval iter_exn : 'callback Read_only.t -> Core_kernel.Source_code_position.t -> f:'callback -> Core_kernel__.Import.unit
module Fold_arity = Core_kernel__Bus.Fold_arityval fold_exn : 'callback Read_only.t -> Core_kernel.Source_code_position.t -> ('callback, 'f, 's) Fold_arity.t -> init:'s -> f:'f -> Core_kernel__.Import.unitval unsubscribe : 'callback Read_only.t -> 'callback Subscriber.t -> Core_kernel__.Import.unit
val pipe1_exn : ('a -> unit) Read_only.t -> Core.Source_code_position.t -> 'a Async_extra__.Import.Pipe.Reader.tpipe1_exn treturns a pipe of updates fromtby subscribing tot. Closing the pipe unsubscribes fromt. Closingtcloses the pipe.pipe1_exnraises in the same circumstances assubscribe_exn.
module First_arity : sig ... endval first_exn : ?stop:unit Async_extra__.Import.Deferred.t -> 'c Read_only.t -> Core.Source_code_position.t -> ('c, 'f, 'r) First_arity.t -> f:'f -> 'r Async_extra__.Import.Deferred.tfirst_exn here t arity ~freturns a deferred that becomes determined with valuerwhen the first event is published totwherefreturnsSome r.first_exnthen unsubscribes fromt, ensuring thatfis never called again after it returnsSome.first_exnraises if it can't subscribe to the bus, i.e., ifsubscribe_exnraises. Iffraises, thenfirst_exnraises to the monitor in effect whenfirst_exnwas called.first_exntakes time proportional to the number of bus subscribers.If
stopis provided and becomes determined,fwill not be called again, it will unsubscribe from the bus, and the deferred that was returned byfirst_exnwill never become determined.