package async_unix
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=814d3a9997ec1316b8b2a601b24471740641647a25002761f7df7869c3ac9e33
doc/async_unix/Async_unix/index.html
Module Async_unix
Source
Dump core if jobs are delayed, to get additional debug information when running on UNIX systems that support core dumps.
An Fd.t
is a wrapper around a Unix file descriptor, with additional information about the kind of file descriptor and logic to ensure that we don't use a file descriptor that has been closed, or close a file descriptor that is in use.
The In_thread
module has functions for interaction between the Async world and other (kernel) threads. The name is to remind us to think about threads and race conditions.
This module contains a singleton that wraps over different possible drivers of the Io_uring_raw
. Currently it only supports an Eventfd
driver or not using Io_uring
at all. The underlying implementation can be picked via the io_uring_mode async config.
Async.Process
is for creating child processes of the current process, and communicating with children via their stdin, stdout, and stderr. Async.Process
is the Async analog of Core_unix.create_process
and related functions.
Reader
is Async's main API for buffered input from a file descriptor. It is the analog of Stdio.In_channel
.
Deprecates functions that use wall-clock time, so that code must be explicit about what time source is used.
This module overrides everything in the Core.Sys
module that might block. Functions do the same thing as their counterparts in Core.Sys
, but instead return deferreds. For a description of their semantics see the documentation for the Core.Sys
module.
The Thread_safe
module has functions that are safe to call from threads outside Async, such as the ones spawned by In_thread.run
.
val every :
?start:unit Async_kernel.Deferred.t ->
?stop:unit Async_kernel.Deferred.t ->
?continue_on_error:bool ->
Async_unix__.Import.Time.Span.t ->
(unit -> unit) ->
unit
val with_timeout :
Async_unix__.Import.Time.Span.t ->
'a Async_kernel.Deferred.t ->
'a Clock.Or_timeout.t Async_kernel.Deferred.t
val schedule :
?monitor:Async_kernel.Monitor.t ->
?priority:Async_kernel.Priority.t ->
(unit -> unit) ->
unit
val schedule' :
?monitor:Async_kernel.Monitor.t ->
?priority:Async_kernel.Priority.t ->
(unit -> 'a Async_kernel.Deferred.t) ->
'a Async_kernel.Deferred.t
val within :
?monitor:Async_kernel.Monitor.t ->
?priority:Async_kernel.Priority.t ->
(unit -> unit) ->
unit
val within' :
?monitor:Async_kernel.Monitor.t ->
?priority:Async_kernel.Priority.t ->
(unit -> 'a Async_kernel.Deferred.t) ->
'a Async_kernel.Deferred.t
Shadow blocking functions in Core.Printf
to prevent their unintentional use.
include sig ... end
val close_in_noerr :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val close_in :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val close_out_noerr :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val close_out :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val flush_all :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val flush :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val in_channel_length :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val input_binary_int :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val input_byte :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val input_char :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val input_line :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val input_lines :
?fix_win_eol:'a ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val input :
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val input_value :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val open_in_bin :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val open_in_gen :
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val open_in :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val open_out_bin :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val open_out_gen :
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val open_out :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val out_channel_length :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val output_binary_int :
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val output_byte :
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val output_char :
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val output :
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val output_string :
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val output_value :
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val pos_in :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val pos_out :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val read_float :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val read_int :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val read_line :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val read_lines :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val read_wrap :
?binary:'a ->
f:'b ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val really_input :
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val seek_in :
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val seek_out :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val set_binary_mode_in :
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val set_binary_mode_out :
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val write_lines :
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val write_wrap :
?binary:'a ->
f:'b ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]
val eprint_s :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]