TCPConnection.waitForDataAsync

Waits asynchronously for new data to arrive.

This function can be used to detach the TCPConnection from a running task while waiting for data, so that the associated memory resources are available for other operations.

Note that read_ready_callback may be called from outside of a task, so no blocking operations may be performed. Instead, an existing task should be notified, or a new one started with runTask.

struct TCPConnection
@safe
waitForDataAsync
(
CALLABLE
)
(,
Duration timeout = Duration.max
)
if (
is(typeof(
()
@safe()))
)

Parameters

read_ready_callback CALLABLE

A callback taking a bool parameter that signals the read-readiness of the connection

timeout Duration

Optional timeout to limit the maximum wait time

Return Value

If the read readiness can be determined immediately, it will be returned as WaitForDataAsyncStatus.dataAvailable or WaitForDataAsyncStatus.noModeData and the callback will not be invoked. Otherwise WaitForDataAsyncStatus.waiting is returned and the callback will be invoked once the status can be determined or the specified timeout is reached.

Meta