See also Thread Mailboxes.
An asynchronous channel is like a channel, but it buffers values so that a send operation does not wait on a receive operation.
In addition to its use with procedures that are specific to asynchronous channels, an asynchronous channel can be used as a synchronizable event (see Events). An asynchronous channel is ready for synchronization when async-channel-get would not block; the asynchronous channel’s synchronization result is the same as the async-channel-get result.
Returns #t if v is an asynchronous channel, #f otherwise.
Returns an asynchronous channel with a buffer limit of limit items. A get operation blocks when the channel is empty, and a put operation blocks when the channel has limit items already. If limit is #f, the channel buffer has no limit (so a put never blocks).
Blocks until at least one value is available in ach, and then returns the first of the values that were put into async-channel.
If at least one value is immediately available in ach, returns the first of the values that were put into ach. If async-channel is empty, the result is #f.
Puts v into ach, blocking if ach’s buffer is full until space is available.
Examples:
11.2.4.2 Contracts and Impersonators on Asynchronous Channels🔗ℹReturns a contract that recognizes asynchronous channels. Values put into or retrieved from the channel must match c.
If the c argument is a flat contract or a chaperone contract, then the result will be a chaperone contract. Otherwise, the result will be an impersonator contract.
When an async-channel/c contract is applied to an asynchronous channel, the result is not eq? to the input. The result will be either a chaperone or impersonator of the input depending on the type of contract.
The get-proc must accept the value that async-channel-get produces on channel; it must produce a replacement value, which is the result of the get operation on the impersonator.
The put-proc must accept the value passed to async-channel-put called on channel; it must produce a replacement value, which is the value passed to the put procedure called on the original channel.
The get-proc and put-proc procedures are called for all operations that get or put values from the channel, not just async-channel-get and async-channel-put.
Pairs of prop and prop-val (the number of arguments to impersonate-async-channel must be odd) add impersonator properties or override impersonator property values of channel.
Like
impersonate-async-channel, but the
get-procprocedure must produce the same value or a chaperone of the original value, and
put-procmust produce the same value or a chaperone of the original value.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4