sig
type 'a t = {
put : ('a * bool Join.chan) Join.chan;
get : 'a option Join.chan Join.chan;
close : unit -> unit;
kill : unit Join.chan;
}
val create : unit -> 'a JoinFifo.t
val create_prod_cons : unit -> 'a JoinCom.P.t * 'a JoinCom.C.t
module S :
sig
exception Closed
type 'a t = {
put : 'a -> unit;
get : unit -> 'a;
close : unit -> unit;
kill : unit -> unit;
}
end
val create_sync : unit -> 'a JoinFifo.S.t
end