Module ThreadUnix

module ThreadUnix: sig .. end
Deprecated.The functionality of this module has been merged back into the Unix module. Threaded programs can now call the functions from module Unix directly, and still get the correct behavior (block the calling thread, if required, but do not block all threads in the process).

Thread-compatible system calls.


Process handling

val execv : string -> string array -> unit
val execve : string -> string array -> string array -> unit
val execvp : string -> string array -> unit
val wait : unit -> int * Unix.process_status
val waitpid : Unix.wait_flag list -> int -> int * Unix.process_status
val system : string -> Unix.process_status

Basic input/output

val read : Unix.file_descr -> bytes -> int -> int -> int
val write : Unix.file_descr -> bytes -> int -> int -> int
val single_write : Unix.file_descr -> bytes -> int -> int -> int
val write_substring : Unix.file_descr -> string -> int -> int -> int
val single_write_substring : Unix.file_descr -> string -> int -> int -> int

Input/output with timeout

val timed_read : Unix.file_descr -> bytes -> int -> int -> float -> int

See ThreadUnix.timed_write.

val timed_write : Unix.file_descr -> bytes -> int -> int -> float -> int

Behave as ThreadUnix.read and ThreadUnix.write, except that Unix_error(ETIMEDOUT,_,_) is raised if no data is available for reading or ready for writing after d seconds. The delay d is given in the fifth argument, in seconds.

val timed_write_substring : Unix.file_descr -> string -> int -> int -> float -> int

See ThreadUnix.timed_write.

Polling

val select : Unix.file_descr list ->
Unix.file_descr list ->
Unix.file_descr list ->
float -> Unix.file_descr list * Unix.file_descr list * Unix.file_descr list

Pipes and redirections

val pipe : ?cloexec:bool -> unit -> Unix.file_descr * Unix.file_descr
val open_process_in : string -> in_channel
val open_process_out : string -> out_channel
val open_process : string -> in_channel * out_channel
val open_process_full : string ->
string array ->
in_channel * out_channel * in_channel

Time

val sleep : int -> unit

Sockets

val socket : ?cloexec:bool ->
Unix.socket_domain -> Unix.socket_type -> int -> Unix.file_descr
val socketpair : ?cloexec:bool ->
Unix.socket_domain ->
Unix.socket_type -> int -> Unix.file_descr * Unix.file_descr
val accept : ?cloexec:bool -> Unix.file_descr -> Unix.file_descr * Unix.sockaddr
val connect : Unix.file_descr -> Unix.sockaddr -> unit
val recv : Unix.file_descr -> bytes -> int -> int -> Unix.msg_flag list -> int
val recvfrom : Unix.file_descr ->
bytes -> int -> int -> Unix.msg_flag list -> int * Unix.sockaddr
val send : Unix.file_descr -> bytes -> int -> int -> Unix.msg_flag list -> int
val send_substring : Unix.file_descr -> string -> int -> int -> Unix.msg_flag list -> int
val sendto : Unix.file_descr ->
bytes -> int -> int -> Unix.msg_flag list -> Unix.sockaddr -> int
val sendto_substring : Unix.file_descr ->
string -> int -> int -> Unix.msg_flag list -> Unix.sockaddr -> int
val open_connection : Unix.sockaddr -> in_channel * out_channel
val establish_server : (in_channel -> out_channel -> unit) ->
Unix.sockaddr -> unit