Module Syscall_result

module Syscall_result: sig .. end
Representation of Unix system call results

Almost no Unix system call returns a negative integer in case of success.

We can use this to encode the result of a system call as either a positive integer value or -errno. This allows us to avoid exceptions for dealing with errors such as EAGAIN. Indeed, in some context we issue a system call in a tight loop that will often fail with EAGAIN and using exceptions to return it is costly.


type 'a t = private int 
There is no with sexp_of on purpose as it could only print the 'a value as an integer. Use <:sexp_of< Int.t >> or <:sexp_of< Unit.t >>.
module type S = Syscall_result_intf.S  with type 'a syscall_result := 'a t
module type Arg = Syscall_result_intf.Arg
module Make: 
functor (M : Arg) ->
functor (* : sig
end) -> S with type ok_value := M.t
module Int: S  with type ok_value := int
module Unit: S  with type ok_value := unit
val create_error : Unix_error.t -> 'a t
val unit : Unit.t
val ignore_ok_value : 'a t -> Unit.t
Keep only the error.