1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162open!Core_kernelopen!Async_kernelopen!ImportmoduletypeSimple=sigmoduleKey:sigtypet[@@derivingsexp_of]includeComparable.S_plainwithtypet:=tincludeHashable.S_plainwithtypet:=tendmoduleCommon_args:Ttypetvalopen_:Key.t->Common_args.t->tOr_error.tDeferred.tvalclose:t->unitDeferred.tendmoduletypeS=sigmoduleKey:sigtypet[@@derivingsexp_of]includeComparable.S_plainwithtypet:=tincludeHashable.S_plainwithtypet:=tendmoduleCommon_args:Ttypetvalopen_:Key.t->Common_args.t->tDeferred.Or_error.tvalclose:t->unitDeferred.tvalclose_finished:t->unitDeferred.t(** [has_close_started t] should return [true] iff [close t] has been called, even if
[close_finished] has not been determined. *)valhas_close_started:t->boolendmoduletypeS_wrapped=sigincludeStyperesourcevalunderlying:t->resourceendmoduletypeResource=sigmoduletypeS=SmoduletypeS_wrapped=S_wrappedmoduletypeSimple=Simple(** Wrap a resource that does not natively support a [has_close_started] operation
in a simple record to add such tracking. *)moduleMake_simple(R:Simple):S_wrappedwithmoduleKey=R.KeyandmoduleCommon_args=R.Common_argsandtyperesource=R.tend