tryread_until

March 26, 2020 Contributors

Name

tryread_until — Read data in growbuf sized chunks

Synopsis

#include "ec_growbuf.h"

| int **tryread_until** ( | event, |   |
|   | needmask, |   |
|   | mtc, |   |
|   | until); |   |

Event * <var class="pdparam">event</var>;
int * <var class="pdparam">needmask</var>;
minimal_tryread_construct * <var class="pdparam">mtc</var>;
const char * <var class="pdparam">until</var>;

Description

Read data in growbuf sized chunks.

Note

All events are assumed to be non-blocking, so the read and write semantics are non-blocking.

The actual system call happening underneath can be either a ‘read’ or ‘write’ depending on the IO driver being used (for example, TLS).

Parameters

event

An event.

needmask

The mask.

mtc

The address of a “minimal_tryread_construct” struct.

until

An integer value, often TRYREAD_UNTIL_CRLFDOTCRLF or TRYREAD_UNTIL_CRLF.

Return Values

This function returns the number of bytes successfully read or -1 if there is an error. If there is an error, then errno is set appropriately (example, EAGAIN, E2BIG, ENOMEM).

Threading

It is only legal to call this function in the Scheduler thread.

See Also

trywrite, trywritef, and minimal_tryread_construct_free.