diff --git a/src/runtime2/store/component.rs b/src/runtime2/store/component.rs index 65e0bbc75d1999b762b56ff7a78cc44f5cb36c2c..8288781e4e2b9402120206bf8246c3ef6d3d622c 100644 --- a/src/runtime2/store/component.rs +++ b/src/runtime2/store/component.rs @@ -86,7 +86,7 @@ impl ComponentReservation { impl Drop for ComponentReservation { fn drop(&mut self) { - debug_assert!(self.submitted); + dbg_code!( assert!(self.submitted) ); } } @@ -187,12 +187,15 @@ impl ComponentStore { loop { let preemptive_read = shared_lock.freelist[read_index & shared_lock.index_mask]; - if let Err(actual_read_index) = self.read_head.compare_exchange( + if let Err(_actual_read_index) = self.read_head.compare_exchange( read_index, (read_index + 1) & shared_lock.compare_mask, Ordering::AcqRel, Ordering::Acquire ) { // We need to try again - read_index = actual_read_index; + // TODO: Fix this update loop at some point. When update + // loop is disabled, popping the freelist index is not + // reliable. + // read_index = actual_read_index; continue 'attempt_read; }