Skip to content
Snippets Groups Projects
Select Git revision
  • 6845790ab88234386579a9d7aa571bd6ee50799c
  • master default protected
  • home-exam
  • dsi_debug
  • rtt_timing
  • timing_task
  • timing_resources
  • main.rs
  • rtic6
  • v1.0
10 results

rtt_timing.rs

Blame
  • Forked from Per Lindgren / rtic_f4xx_nucleo
    Source project has a limited visibility.
    tsan.rs 839 B
    extern crate heapless;
    
    use std::thread;
    
    use heapless::RingBuffer;
    
    #[test]
    fn once() {
        static mut RB: RingBuffer<i32, [i32; 4]> = RingBuffer::new();
    
        unsafe { RB.split() }.0.enqueue(0).unwrap();
    
        thread::spawn(|| {
            unsafe { RB.split() }.0.enqueue(1).unwrap();
        });
    
        thread::spawn(|| {
            unsafe { RB.split() }.1.dequeue().unwrap();
        });
    }
    
    #[test]
    fn twice() {
        static mut RB: RingBuffer<i32, [i32; 8]> = RingBuffer::new();
    
        unsafe { RB.split() }.0.enqueue(0).unwrap();
        unsafe { RB.split() }.0.enqueue(1).unwrap();
    
        thread::spawn(|| {
            unsafe { RB.split() }.0.enqueue(2).unwrap();
            unsafe { RB.split() }.0.enqueue(3).unwrap();
        });
    
        thread::spawn(|| {
            unsafe { RB.split() }.1.dequeue().unwrap();
            unsafe { RB.split() }.1.dequeue().unwrap();
        });
    }