Core_unix.Syscall_result
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.
There is no [@@deriving 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]
.
exposed only as a performance hack
module type S = sig ... end
module type Arg = sig ... end
module File_descr : S with type ok_value := File_descr.t
val create_error : UnixLabels.error -> _ t
val unit : Unit.t
val is_ok : _ t -> bool
val is_error : _ t -> bool
val error_exn : _ t -> UnixLabels.error