# Struct scoped_pool::Pool [−] [src]

    pub struct Pool {
        // some fields omitted
    }

A thread-pool providing scoped and unscoped threads.

The primary ways of interacting with the `Pool` are the `spawn` and `scoped` convenience methods or through the `Scope` type directly.

## Methods

### `impl Pool`

#### `fn new(size: usize) -> Pool`

Create a new Pool with `size` threads.

If `size` is zero, no threads will be spawned. Threads can be added later via `expand`.

NOTE: Since Pool can be freely cloned, it does not represent a unique handle to the thread pool. As a consequence, the thread pool is not automatically shut down; you must explicitly call `Pool::shutdown` to shut down the pool.

#### `fn empty() -> Pool`

Create an empty Pool, with no threads.

Note that no jobs will run until `expand` is called and worker threads are added.

#### `fn workers(&self) -> usize`

How many worker threads are currently active.

#### `fn spawn<F: FnOnce() + Send + 'static>(&self, job: F)`

Spawn a `'static'` job to be run on this pool.

We do not wait on the job to complete.

Panics in the job will propogate to the calling thread.

#### `fn scoped<'scope, F, R>(&self, scheduler: F) -> R where F: FnOnce(&Scope<'scope>) -> R`

Create a Scope for scheduling a group of jobs in `'scope'`.

`scoped` will return only when the `scheduler` function and all jobs queued on the given Scope have been run.

Panics in any of the jobs or in the scheduler function itself will propogate to the calling thread.

#### `fn shutdown(&self)`

Shutdown the Pool.

WARNING: Extreme care should be taken to not call shutdown concurrently with any scoped calls, or deadlock can occur.

All threads will be shut down eventually, but only threads started before the call to shutdown are guaranteed to be shut down before the call to shutdown returns.

#### `fn expand(&self)`

Expand the Pool by spawning an additional thread.

Can accelerate the completion of running jobs.

## Trait Implementations

### Derived Implementations

### `impl Clone for Pool`

#### `fn clone(&self) -> Pool`

#### `fn clone_from(&mut self, source: &Self)`1.0.0

# Help

## Keyboard Shortcuts

?
  Show this help dialog
S
  Focus the search field
⇤
  Move up in search results
⇥
  Move down in search results
⏎
  Go to active search result

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)