1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
//NOTOK
use crate::actors::actor_cell::ActorCell;
use crate::actors::envelope::Envelope;
use crate::actors::mailbox::Mailbox;
use crate::actors::actor::Actor;
use crate::executors::executor::Executor;
use crate::common::tsafe::TSafe;

pub trait Dispatcher: Executor  {
    fn dispatch(self: &mut Self,
                cell: TSafe<ActorCell>,
                bid: usize,
                mailbox: TSafe<Mailbox + Send>,
                actor: TSafe<Actor + Send>,
                envelope: Envelope);

    fn obtain_bid(self: &mut Self) -> usize;
}