# IoPollBinding

`import { IoPollBinding } from "destack:io/binding";`

Poll binding family.

```ds title="IoPollBinding"
export interface IoPollBinding {
    openIoPoll(backend: IoPollBackend): Result<IoPollHandle, HostError>;
    closeIoPoll(poll: IoPollHandle): Result<void, HostError>;
    addIoPoll(poll: IoPollHandle, resource: ResourceId, key: uint64, interest: IoPollInterest): Result<void, HostError>;
    updateIoPoll(poll: IoPollHandle, resource: ResourceId, key: uint64, interest: IoPollInterest): Result<void, HostError>;
    removeIoPoll(poll: IoPollHandle, resource: ResourceId): Result<void, HostError>;
    waitIoPoll(poll: IoPollHandle, events: &'a [IoPollEvent], timeoutNs?: uint64 | undefined): Result<uint32, HostError>;
}
```

[language/library/src/io/binding/poll.ds:48:116](https://github.com/destack-sh/destack/blob/main/language/library/src/io/binding/poll.ds#L48-L116)

## Members

### `openIoPoll(backend: IoPollBackend): Result<IoPollHandle, HostError>`

Open a readiness poller.

### `closeIoPoll(poll: IoPollHandle): Result<void, HostError>`

Close a readiness poller.

### `addIoPoll(poll: IoPollHandle, resource: ResourceId, key: uint64, interest: IoPollInterest): Result<void, HostError>`

Add one resource to a readiness poller.

### `updateIoPoll(poll: IoPollHandle, resource: ResourceId, key: uint64, interest: IoPollInterest): Result<void, HostError>`

Update one resource in a readiness poller.

### `removeIoPoll(poll: IoPollHandle, resource: ResourceId): Result<void, HostError>`

Remove one resource from a readiness poller.

### `waitIoPoll(poll: IoPollHandle, events: &'a [IoPollEvent], timeoutNs?: uint64 | undefined): Result<uint32, HostError>`

Wait for readiness events.
