• Eric Wong's avatar
    audio_format: volatile removal · 18fc10a9
    Eric Wong authored
    volatile provides absolutely no guarantee thread-safety in SMP
    environments.  volatile was designed to access memory locations
    in peripheral hardware directly; not for SMP.  If volatile is
    needed to work properly on SMP, then it is only hiding subtle
    bugs.
    
    volatile only prevents the /compiler/ from making optimizations
    when accessing variables.  CPUs do their own optimizations at
    runtime so it cannot guarantee registers of CPUs are flushed
    to memory cache-coherent access on different CPUs.
    
    Furthermore, the thread-communication via condition variables
    between threads sharing audio formats already results in memory
    barriers.
    18fc10a9
audio_format.h 1.29 KB