don't forget to reset

This commit is contained in:
Alex Mikhalev 2019-01-18 12:15:22 -08:00
parent f5c520816e
commit 3441990817

View File

@ -186,10 +186,19 @@ impl<T: CommandImp> Command for GenericCommand<T> {
}
fn reset(&mut self) {
self.context.status = CommandStatus::Stopped;
use self::CommandStatus::*;
self.context.status = match self.context.status {
Ended | Cancelled => Stopped,
other => other,
};
}
fn cancel(&mut self) {
self.context.status = CommandStatus::Cancelling;
use self::CommandStatus::*;
self.context.status = match self.context.status {
Running => Cancelling,
other => other,
};
}
}
@ -333,6 +342,7 @@ impl CommandImp for CommandGroupConfig {
let mut command = command.borrow_mut();
command.cancel();
command.execute();
command.reset();
}
}
}
@ -408,7 +418,10 @@ impl CommandScheduler {
self.running_commands.drain_filter(|command_run| {
let mut command = command_run.command.borrow_mut();
match command.execute() {
Ended | Cancelled => true,
Ended | Cancelled => {
command.reset();
true
},
Stopped | Running | Cancelling => false,
}
});