package async
Install
    
    dune-project
 Dependency
Authors
Maintainers
Sources
sha256=709041c755f4cd8740b7262e657f59c1066a8540b70c3b99368f369a1196a681
    
    
  doc/CHANGES.html
Release v0.16.0
- Update - Async_command.with_options:- Add optional behave_nicely_in_pipelineparameter
- If true, calls Writer.behave_nicely_in_pipeline()when the command starts
- Default value is true
 
- Add optional 
- Update - Async_quickcheck.async_testfunction:- Add optional sizesparameter to specify a sequence of sizes for generated test data
- Add optional shrinkerparameter to provide a custom shrinker for the test data
- Add optional shrink_attemptsparameter to control the number of attempts at shrinking test data
 
- Add optional 
- Changes in Async_rpc.Rpc:
- Change handshake_timeoutparameter type fromTime.Span.ttoTime_float.Span.t.
- Remove on_handshake_errortype fromRpc.Connectionto simplify the interface
- Changes in - Async_rpc.Rpc_transport:- Add writer_buffer_sizeparameter toRpc_transport.of_fd
 
- Add 
- Add new function to - Rpc_transport_low_latency.Reader.With_internal_reader:- read_one_message_bin_prot_without_buffering- Similar to Rpc_kernel.Transport.Reader.read_one_message_bin_prot
- Reads only the necessary bytes for a single bin prot message from the underlying file descriptor
 
- Similar to 
 
- Changes in - Lock_file_async.Flock:- Flock.lock_exnand- Flock.locknow have optional- exclusiveand- close_on_execparameters- exclusivecontrols exclusive access to the lock
- close_on_execspecifies whether to close the lock when executing a new program
 
 
- Update functions in - Flockmodule in- Lock_file_async:- Added an optional exclusiveparameter, enabling shared locks when set to false (previously exclusive locks only)
- Add optional close_on_execparameter to control if the lock is closed on exec
 
- Added an optional 
- Changes in - Persistent_connection:- retry_delayand- handshake_timeoutchanged from- Time.Span.tto- Time_float.Span.t
 
- Changes in - Unpack_sequence:- Added a new function: - Unpack_sequence.unpack_iter_with_pushback- Similar to unpack_iter, but waits forpushbackafter unpacking every chunk
 
- Similar to 
 
Old pre-v0.15 changelogs (very likely stale and incomplete)
git version
- Added a new (single-module) library async.log_extended, extendingAsync.LogwithConsoleandSyslogsubmodules.
- Improved Async scheduler fairness by calling Thread.yield every cycle, which releases the OCaml lock if any other OCaml threads are waiting to acquire it.
- Added a new (single-module) library async.unpack_sequence, for efficiently unpacking a sequence of packed values coming from astring Pipe.Reader.tor aReader.t.
- Increased Unix.listen's default backlog from 10 to 64, to reduce occurrences of TCP clients getting Unexpected EOF errors when the listening server is busy.
- Added an optional argument to Pipe functions fold and iter so they can consider a value flushed when it is processed by the supplied ~f rather than when it is read out of the pipe.
- Weak_hashtblwas moved into its own library- Weak_hashtbl_async, which is released as part of the async package.
- Added function Tcp.Server.close_finished_and_handlers_determined.
v0.10
- Moved Persistent_connectiontoAsync_kernel, so that it can be used in javascript.
- Improved Log.Outputto write, flush, rotate, or close allLog.Output.ts, even if one raises
- Added Async.print_sfor pretty printing a sexp to stdout.
- Removed a per-cycle allocation from the scheduler.
- Fixed Reader.load_bin_protto always returnErrorwhen there is an error, rather than returnErrorin some situations and raise in others.
- Improved the behavior of shutdown when there are errors.
- Added Scheduler.may_sleep_for_thread_fairness, an opt-in configuration that improves thread fairness.
- Added to Sys.file_existsfunction afollow_symlinksoptional argument.
- Fixed the Async scheduler so that for top-level unhandled exceptions, it runs at_exitfunctions once, not twice.
- For Writer.open_file, exposed the syscall optional argument.
- Exposed Async.ifprintf, which had previously been mistakenly shadowed even though it doesn't block.
- Unified Synchronous_time_source.tandTime_source.t, into a single data structure, allowing one to convert between them as needed. This involved substantive changes to Async's clock.
- Added function Time_source.timing_wheel_now.
- Added stable types for Log.LevelandLog.Output.format.
- Improved shutdown function so that when shutdown is forced (i.e. at_shutdownhandlers time out), it callsPervasives.exit, which runsat_exithandlers. This improvesCommand.asyncin this situation, due to its use of anat_exithandler to print errors.
- Improved Process.run's error message whenworking_diris missing.
- Fixed Rpc.Connection.createso that it doesn't raise on a failed handshake.
- Significantly improved the performance of Log.printfwhen the log message won't be printed, by usingifprintfto avoid constructing the message.
- Added Socket.AddressfunctionsInet.to_sockaddrandUnix.to_sockaddr, the type specialized versions ofSocket.Address.to_sockaddr.
- Added Socket.bind_inet, which is like bind, but restricted to Inet addresses and does not return aDeferred.t. ChangedUdp.bindandbind_anyto not return aDeferred.t.
- Added to File_tail.createan optional?throttleargument so that one can use a custom throttle andmax_concurrent_jobsrather than a global throttle with a fixedmax_concurrent_jobs.
- Renamed TcpandRpc'svia_local_interfaceandvia_local_portarguments asbind_to_addressandbind_to_port.
- Made Tcp.Server.createandcreate_sock's~on_handler_errorargument mandatory.
- In Tcp.Server, stopped callingon_handler_errorforWritererror frominner_monitor, which only indicated that the client likely closed the connection before all the bytes could be written.
- Renamed Command.asyncasasync_specandCommand.async'asasync. We want to encourage the use ofCommand.Paramand discourage the use ofCommand.Spec.
- Changed Asyncso that in tests it uses synchronous output.
- Changed Async's default max number of open file descriptors from8_192to the minimum of32_768andulimit -n -H.
- In the Async scheduler's main loop, avoided calling Time_ns.nowandLinux_ext.Timerfd.set_afterunless they are needed. This saves about 50ns per cycle.
- Moved Tcpfunctions for specifying where to connect and where to listen into submodules:Where_to_connectandWhere_to_listen
- Changed Tcp.to_host_and_portfrom taking a string and int toTcp.Where_to_connect.of_host_and_port, taking aHost_and_port.t
- Changed Rpc.Connection.clientto take aTcp.Where_to_connect.tinstead of~host ~port.
- Changed Synchronous_time_source.Event.abortto return a variant type, in the same style asTime_source.Event.abort. Addedabort_exnandabort_if_possible, also in the same style asTime_source.Event.
- Added function Scheduler.long_cycles, which returns the stream of cycles whose duration exceeds a user-supplied time span. This is more efficient thancycle_times, because it only allocates a stream element when there is a long cycle, rather than on every cycle.
- Made internal libraries stdless: Async_unix,Async_extra.
- Changed Udp.recvfrom_loopandread_loopfunctions to return a variantClosed | Stoppedrather thanunit.
- Extended the Unix.Inet_addrmodule's interface to includeCore.Unix.Inet_addr's interface.
v0.9
113.43.00
- Added some expect tests of Monitor, in particularMonitor.handle_errors.
- Added a benchmark of Monitor.try_with.
113.33.00
Keep up to date with interface changes in Async_kernel, Async_extra and Async_unix.
113.24.00
Keep up to date with interface changes in Async_kernel, Async_extra and Async_unix.
113.00.00
- Added - Async.Std.Printfmodule so that one doesn't unintentionally use blocking- Core.Std.Printffunctions in an Async program.- There was much pre-existing code that did this via: - : open Core.Std : open Async.Std - Async.Std.Printfdefines blocking functions (e.g- printf,- eprintf) to cause a type error, but leaves Async-friendly functions (e.g.- sprintf,- ksprintf) untouched.- Replaced uses of - Printf.*, with- Core.Std.Printf.*where needed.
112.35.00
- Include some previously-omitted benchmarks
112.24.00
Keep up to date with interface changes in Async_kernel, Async_extra and Async_unix.
112.17.00
Added tests and updated examples
112.01.00
- update tests
111.25.00
- add a dns example
111.11.00
- Updated the sound.ml example
109.53.00
- Bump version number
109.14.00
- Added function - Monitor.kill, which kills a monitor and all its descendants.- This prevents any jobs from ever running in the monitor again. 
109.09.00
- Switched Async.Std's toplevel bindings forDeferred.Or_error'sbindandmapto useDeferred.Result. This allows them to be used with any'errortype, rather than justError.t.
109.05.00
- Added val _squelch_unused_module_warning_toAsync.Std.