# WorkerPool

`import { WorkerPool } from "destack:worker";`

Pool of homogeneous workers.

```ds title="WorkerPool"
export class WorkerPool<T, R> {
    workers: Worker<T, R>[];
    request(message: T): AsyncResult<R, WorkerError>;
    terminate(): Promise<void>;
}
```

[language/library/src/worker/worker.ds:43:56](https://github.com/destack-sh/destack/blob/main/language/library/src/worker/worker.ds#L43-L56)

## Members

### `workers: Worker<T, R>[]`

The workers in this pool.

### `request(message: T): AsyncResult<R, WorkerError>`

Send one request to an available worker.

### `terminate(): Promise<void>`

Request shutdown for every worker.
