Krb_internal_public.Context_sequencerSourceSequence all kerberos functions. We use a global context (in C land) and there are some functions that are not thread safe. We even have to sequence the finalizers because they too call functions that need a context.
val enqueue_job_with_info' :
info:'a Krb_info.t ->
f:(Context.t -> 'a Krb_result.t) ->
('a, [ `Raised of Core.Error.t | `Krb_error of Core.Error.t * Krb_error.t ])
Async.Deferred.Result.tval enqueue_job_with_info :
info:'a Krb_info.t ->
f:(Context.t -> 'a Krb_result.t) ->
'a Core.Or_error.t Async.Deferred.tval enqueue_blocking_if_below_encryption_size_threshold :
data_size:int ->
info:'a Krb_info.t ->
f:(Context.t -> 'a Krb_result.t) ->
'a Core.Or_error.t Async.Deferred.t