Module Mavryk_p2p.P2p_trigger

This module defines some condition values for inter modules synchronization.

Conditions are triggered by P2p_pool and P2p_connect_handler. They are used in particular by the maintenance worker in P2p_maintenance. Conditions are always broadcast (and not signaled), waiters should take that into account and avoid side effects

type t
val create : unit -> t
val wait_too_few_connections : t -> unit Lwt.t

wait_too_few_connections t resolves when the number of connections drops below the desired level.

val wait_too_many_connections : t -> unit Lwt.t

wait_too_many_connections t resolves when the number of connections exceeds the desired level.

val wait_new_peer : t -> unit Lwt.t

wait_new_peer t resolves when a new peer (i.e. authentication successful) gets added to the pool.

val wait_new_point : t -> unit Lwt.t

wait_new_point t resolves when a new point gets registered to the pool.

val wait_new_connection : t -> unit Lwt.t

wait_new_connection t resolves when a new connection is successfully established in the pool.

val broadcast_new_point : t -> unit
val broadcast_new_connection : t -> unit
val broadcast_new_peer : t -> unit
val broadcast_too_few_connections : t -> unit
val broadcast_too_many_connections : t -> unit