跳转至

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

  • [zx_event_create()]
  • [zx_handle_close()]
  • [zx_handle_duplicate()]
  • [zx_handle_replace()]
  • [zx_object_signal()]
  • [zx_object_signal_peer()]
  • [zx_object_wait_async()]
  • [zx_object_wait_many()]
  • [zx_object_wait_one()]

zx_event_create()zx_handle_close()zx_handle_duplicate()zx_handle_replace()zx_object_signal()zx_object_signal_peer()zx_object_wait_async()zx_object_wait_many()zx_object_wait_one()


最后更新: 2022 年 12 月 31 日(Saturday) 21:07 CST