package core

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

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 = int

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 Make (M : Arg) () : 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
val unit : Unit.t
val is_ok : _ t -> bool
val is_error : _ t -> bool
val error_exn : _ t -> Unix.error
val ignore_ok_value : _ t -> Unit.t

Keep only the error.