audio_format: volatile removal
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.
This commit is contained in:
parent
a5f68b3cfc
commit
18fc10a926
@ -22,9 +22,9 @@
|
||||
#include "mpd_types.h"
|
||||
|
||||
typedef struct _AudioFormat {
|
||||
volatile mpd_sint8 channels;
|
||||
volatile mpd_uint32 sampleRate;
|
||||
volatile mpd_sint8 bits;
|
||||
mpd_sint8 channels;
|
||||
mpd_uint32 sampleRate;
|
||||
mpd_sint8 bits;
|
||||
} AudioFormat;
|
||||
|
||||
static inline double audio_format_time_to_size(const AudioFormat * af)
|
||||
|
Loading…
Reference in New Issue
Block a user