zx_eventpair_create

Summary

Create an event pair.

Declaration

#include <zircon/syscalls.h>

zx_status_t zx_eventpair_create(uint32_t options,
                                zx_handle_t* out0,
                                zx_handle_t* out1);

Description

zx_eventpair_create() creates an event pair, which is a pair of objects that are mutually signalable.

The signals ZX_EVENTPAIR_SIGNALED and ZX_USER_SIGNAL_n (where n is 0 through 7) may be set or cleared using zx_object_signal(), which modifies the signals on the object itself, or zx_object_signal_peer(), which modifies the signals on its counterpart.

When all the handles to one of the objects have been closed, the ZX_EVENTPAIR_PEER_CLOSED signal will be asserted on the opposing object.

The newly-created handles will have the ZX_RIGHT_TRANSFER, ZX_RIGHT_DUPLICATE, ZX_RIGHT_READ, ZX_RIGHT_WRITE, ZX_RIGHT_SIGNAL, and ZX_RIGHT_SIGNAL_PEER rights.

Currently, no options are supported, so options must be set to 0.

Rights

Caller job policy must allow ZX_POL_NEW_EVENTPAIR.

Return value

zx_eventpair_create() returns ZX_OK on success. On failure, a (negative) error code is returned.

Errors

ZX_ERR_INVALID_ARGS out0 or out1 is an invalid pointer or NULL.

ZX_ERR_NOT_SUPPORTED options has an unsupported flag set (i.e., is not 0).

ZX_ERR_NO_MEMORY Failure due to lack of memory. There is no good way for userspace to handle this (unlikely) error. In a future build this error will no longer occur.

See also