Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Shuttle.Output_channelSourceAlternative to Async_unix.Writer, based on the low latency transport in async_rpc.
val create :
?max_buffer_size:int ->
?buf_len:int ->
?write_timeout:Core.Time_ns.Span.t ->
Async_unix.Fd.t ->
tcreate ?max_buffer_size ?buf_len ?write_timeout fd creates a new writer.
The writer doesn't flush automatically and the user is responsible for calling flush, which triggers a write system call if needed.
monitor returns the async monitor used by Output_channel for performing all write operations.
remote_closed is a deferred that's resolved when the consumer that's reading the bytes written to the Output_channel is closed, i.e. the channel has received an EPIPE or ECONNRESET when it attempts to perform a write.
write_bigstring copies the bigstring into the channel's internal buffer. It is safe to modify the bigstring once write_bigstring returns.
write copies the string into the channel's internal buffer. The string will surface the next time the writer schedules a write.
close will close the underlying file descriptor after waiting for the writer to be flushed.
schedule_flush will schedule a write system call if one is needed.
flushed_or_fail t returns a Deferred that is resolved when all previous writes complete, or if any of the write operations fail.
flushed t returns a deferred that will get resolved when all previous writes have finished. Unlike flushed_or_fail if a write call fails then the deferred will never be resolved.
flush schedules a write system call if one is needed and returns a deferred that is resolved when all prior writes have finished. If a write call fails then the deferred will never be resolved.
flush_or_fail schedules a write system call if one is needed and returns a deferred that is resolved when all previous writes complete, or if any of the write operations fail.
val of_pipe :
Core.Info.t ->
string Async_kernel.Pipe.Writer.t ->
(t * unit Async_kernel.Deferred.t) Async_kernel.Deferred.topen_file ?buf_len ?append filename opens a new file and returns a channel that can be used to write content to the file. buf_len is an optional input and can be used to control the channel's buffer size.
val with_file :
?buf_len:int ->
?append:bool ->
Core.Filename.t ->
f:(t -> 'a Async_kernel.Deferred.t) ->
'a Async_kernel.Deferred.twith_file ?buf_len ?append filename ~f opens a new file and forwards the channel to the user provided callback. Once f returns the channel and the underlying file is closed.