Module rayon_core::compile_fail::quicksort_race1

source ·
Expand description

fn quick_sort<T:PartialOrd+Send>(v: &mut [T]) {
   if v.len() <= 1 {
       return;
   }

   let mid = partition(v);
   let (lo, _hi) = v.split_at_mut(mid);
   rayon_core::join(|| quick_sort(lo), || quick_sort(lo)); //~ ERROR
}

fn partition<T:PartialOrd+Send>(v: &mut [T]) -> usize {
   let pivot = v.len() - 1;
   let mut i = 0;
   for j in 0..pivot {
       if v[j] <= v[pivot] {
           v.swap(i, j);
           i += 1;
       }
   }
   v.swap(i, pivot);
   i
}

fn main() { }