blob: ec800e45e45219f9d586f799034757ad36a87382 [file] [log] [blame] [view]
# zx_port_cancel
## NAME
port_cancel - cancels async port notifications on an object
## SYNOPSIS
```
#include <zircon/syscalls.h>
zx_status_t zx_port_cancel(zx_handle_t port,
zx_handle_t source,
uint64_t key);
```
## DESCRIPTION
**port_cancel**() is a non-blocking syscall which cancels
pending **object_wait_async**() calls done with *source* and *key*.
When this call succeeds no new packets from the object pointed by
*source* with *key* will be delivered to *port*, and pending queued
packets that match *source* and *key* are removed from the port.
## RETURN VALUE
**zx_port_cancel**() returns **ZX_OK** if cancellation succeeded and
either queued packets were removed or pending **object_wait_async**() were
canceled.
## ERRORS
**ZX_ERR_BAD_HANDLE** *source* or *port* is not a valid handle.
**ZX_ERR_WRONG_TYPE** *port* is not a port handle.
**ZX_ERR_ACCESS_DENIED** *source* or *port* does not have **ZX_RIGHT_WRITE**.
**ZX_ERR_NOT_SUPPORTED** *source* is a handle that cannot be waited on.
**ZX_ERR_NOT_FOUND** if either no pending packets or pending
**object_wait_async** calls with *source* and *key* were found.
## SEE ALSO
[port_wait](port_wait.md).