Struct actix::System[][src]

pub struct System { /* fields omitted */ }
[]

System is an actor which manages runtime.

Before starting any actix's actors, System actor has to be created and started with System::run() call. This method creates new Arbiter in current thread and starts System actor.

Examples

extern crate actix;

use actix::prelude::*;
use std::time::Duration;

struct Timer {
    dur: Duration,
}

impl Actor for Timer {
    type Context = Context<Self>;

    // stop system after `self.dur` seconds
    fn started(&mut self, ctx: &mut Context<Self>) {
        ctx.run_later(self.dur, |act, ctx| {
            // Stop current running system.
            System::current().stop();
        });
    }
}

fn main() {
    // initialize system and run it.
    // This function blocks current thread
    let code = System::run(|| {
        // Start `Timer` actor
        Timer {
            dur: Duration::new(0, 1),
        }.start();
    });

    std::process::exit(code);
}

Methods

impl System
[src]
[]

[]

Create new system.

This method panics if it can not create tokio runtime

[]

Get current running system.

[]

Execute function with system reference.

[]

Stop the system

[]

System arbiter

[]

Get current system registry.

[]

This function will start tokio runtime and will finish once the System::stop() message get called. Function f get called within tokio runtime context.

Trait Implementations

impl Clone for System
[src]
[+]

[]

Returns a copy of the value. Read more

[]

Performs copy-assignment from source. Read more

Auto Trait Implementations

impl Send for System

impl Sync for System