# actix_web::actix::actix::dev::Arbiter - Rust
API documentation for the Rust `Arbiter` struct in crate `actix_web`.
Keywords: rust, rustlang, rust-lang, Arbiter

# Struct actix_web::actix::actix::dev::Arbiter [−]

    pub struct Arbiter { /* fields omitted */ }

Event loop controller

Arbiter controls event loop in it's thread. Each arbiter runs in separate thread. Arbiter provides several api for event loop access. Each arbiter can belongs to specific `System` actor.

By default, a panic in an Arbiter does not stop the rest of the System, unless the panic is in the System actor. Users of Arbiter can opt into shutting down the system on panic by using `Arbiter::builder()` and enabling `stop_system_on_panic`.

## Methods

###

`impl Arbiter`

####

`pub fn builder() -> Builder` |

Spawn new thread and run event loop in spawned thread. Returns address of newly created arbiter. Does not stop the system on panic.

####

`pub fn new<T>(name: T) -> Addr<Arbiter> where T: Into<String>,` |

Spawn new thread and run event loop in spawned thread. Returns address of newly created arbiter. Does not stop the system on panic.

####

`pub fn name() -> String` |

Returns current arbiter's name

####

`pub fn current() -> Addr<Arbiter>` |

Returns current arbiter's address

####

`pub fn registry() -> Registry` |

This function returns arbiter's registry,

####

`pub fn spawn<F>(future: F) where F: Future<Item = (), Error = ()> + 'static,` |

Executes a future on the current thread.

####

`pub fn spawn_fn<F, R>(f: F) where F: FnOnce() -> R + 'static, R: IntoFuture<Item = (), Error = ()> + 'static,` |

Executes a future on the current thread.

####

`pub fn start<A, F>(f: F) -> Addr<A> where A: Actor<Context = Context<A>>, F: FnOnce(&mut <A as Actor>::Context) -> A + Send + 'static,` |

Start new arbiter and then start actor in created arbiter. Returns `Addr<Syn, A>` of created actor.

## Trait Implementations

###

`impl Handler<StopArbiter> for Arbiter`

#### `type Result = ()`

The type of value that this handle will return

####

`fn handle(&mut self, msg: StopArbiter, &mut Context<Arbiter>)` |

Method is called for every message received by this Actor

###

`impl<A> Handler<StartActor<A>> for Arbiter where A: Actor<Context = Context<A>>,`

#### `type Result = Addr<A>`

The type of value that this handle will return

####

`fn handle(&mut self, msg: StartActor<A>, &mut Context<Arbiter>) -> Addr<A>` |

Method is called for every message received by this Actor

###

`impl<I, E> Handler<Execute<I, E>> for Arbiter where E: Send, I: Send,`

#### `type Result = Result<I, E>`

The type of value that this handle will return

####

`fn handle(&mut self, msg: Execute<I, E>, &mut Context<Arbiter>) -> Result<I, E>` |

Method is called for every message received by this Actor

###

`impl Drop for Arbiter`

####

`fn drop(&mut self)` |

Executes the destructor for this type. Read more

###

`impl Actor for Arbiter`

#### `type Context = Context<Arbiter>`

Actor execution context type

####

`fn started(&mut self, ctx: &mut Self::Context)` |

Method is called when actor get polled first time.

####

`fn stopping(&mut self, ctx: &mut Self::Context) -> Running` |

Method is called after an actor is in `Actor::Stopping` state. There could be several reasons for stopping. `Context::stop` get called by the actor itself. All addresses to current actor get dropped and no more evented objects left in the context. Read more

####

`fn stopped(&mut self, ctx: &mut Self::Context)` |

Method is called after an actor is stopped, it can be used to perform any needed cleanup work or spawning more actors. This is final state, after this call actor get dropped. Read more

####

`fn start(self) -> Addr<Self> where Self: Actor<Context = Context<Self>>,` |

Start new asynchronous actor, returns address of newly created actor. Read more

####

`fn start_default() -> Addr<Self> where Self: Actor<Context = Context<Self>> + Default,` |

Start new asynchronous actor, returns address of newly created actor.

####

`fn create<F>(f: F) -> Addr<Self> where F: FnOnce(&mut Context<Self>) -> Self + 'static, Self: Actor<Context = Context<Self>>,` |

Use `create` method, if you need `Context` object during actor initialization. Read more

## Auto Trait Implementations

###

`impl Send for Arbiter`

###

`impl Sync for Arbiter`

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## 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`)

Search multiple things at once by splitting your query with comma (e.g. `str,u8` or `String,struct:Vec,test`)