Skip to content

Commit d3be154

Browse files
authored
Merge pull request #240 from Dirbaio/miri-fixes
Miri fixes
2 parents 0738b3c + 4c20353 commit d3be154

File tree

3 files changed

+11
-7
lines changed

3 files changed

+11
-7
lines changed

src/deque.rs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -168,22 +168,21 @@ impl<T, const N: usize> Deque<T, N> {
168168

169169
/// Returns a pair of mutable slices which contain, in order, the contents of the `Deque`.
170170
pub fn as_mut_slices(&mut self) -> (&mut [T], &mut [T]) {
171+
let ptr = self.buffer.as_mut_ptr();
172+
171173
// NOTE(unsafe) avoid bound checks in the slicing operation
172174
unsafe {
173175
if self.is_empty() {
174176
(&mut [], &mut [])
175177
} else if self.back <= self.front {
176178
(
177-
slice::from_raw_parts_mut(
178-
self.buffer.as_mut_ptr().add(self.front) as *mut T,
179-
N - self.front,
180-
),
181-
slice::from_raw_parts_mut(self.buffer.as_mut_ptr() as *mut T, self.back),
179+
slice::from_raw_parts_mut(ptr.add(self.front) as *mut T, N - self.front),
180+
slice::from_raw_parts_mut(ptr as *mut T, self.back),
182181
)
183182
} else {
184183
(
185184
slice::from_raw_parts_mut(
186-
self.buffer.as_mut_ptr().add(self.front) as *mut T,
185+
ptr.add(self.front) as *mut T,
187186
self.back - self.front,
188187
),
189188
&mut [],
@@ -351,7 +350,7 @@ impl<T, const N: usize> Deque<T, N> {
351350
let done = self.is_empty();
352351
IterMut {
353352
_phantom: PhantomData,
354-
buffer: &mut self.buffer[0] as *mut MaybeUninit<T>,
353+
buffer: &mut self.buffer as *mut _ as *mut MaybeUninit<T>,
355354
front: self.front,
356355
back: self.back,
357356
done,

src/spsc.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -621,6 +621,7 @@ mod tests {
621621
}
622622

623623
#[test]
624+
#[cfg_attr(miri, ignore)] // too slow
624625
fn len() {
625626
let mut rb: Queue<i32, 3> = Queue::new();
626627

@@ -641,6 +642,7 @@ mod tests {
641642
}
642643

643644
#[test]
645+
#[cfg_attr(miri, ignore)] // too slow
644646
fn try_overflow() {
645647
const N: usize = 23;
646648
let mut rb: Queue<i32, N> = Queue::new();

tests/tsan.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ fn scoped() {
7474
}
7575

7676
#[test]
77+
#[cfg_attr(miri, ignore)] // too slow
7778
fn contention() {
7879
const N: usize = 1024;
7980

@@ -118,6 +119,7 @@ fn contention() {
118119
}
119120

120121
#[test]
122+
#[cfg_attr(miri, ignore)] // too slow
121123
fn mpmc_contention() {
122124
const N: u32 = 64;
123125

@@ -163,6 +165,7 @@ fn mpmc_contention() {
163165
}
164166

165167
#[test]
168+
#[cfg_attr(miri, ignore)] // too slow
166169
fn unchecked() {
167170
const N: usize = 1024;
168171

0 commit comments

Comments
 (0)