1 //! Bookkeeping to make sure only one long-running operation is executed.
4 pub(crate) struct OpQueue {
10 pub(crate) fn request_op(&mut self) {
11 self.op_scheduled = true;
13 pub(crate) fn should_start_op(&mut self) -> bool {
14 if !self.op_in_progress && self.op_scheduled {
15 self.op_in_progress = true;
16 self.op_scheduled = false;
21 pub(crate) fn op_completed(&mut self) {
22 assert!(self.op_in_progress);
23 self.op_in_progress = false;