diff options
author | Eric Wong <normalperson@yhbt.net> | 2008-09-07 19:14:50 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2008-09-07 19:14:50 +0200 |
commit | 18fc10a92647f06aba065b80a4de219facf5d550 (patch) | |
tree | 077ca9e3340f78a9233d42bf0f06517d40f7a0a5 | |
parent | a5f68b3cfc51ecb21817fcbf23c79f9a0953ba71 (diff) | |
download | mpd-18fc10a92647f06aba065b80a4de219facf5d550.tar.gz mpd-18fc10a92647f06aba065b80a4de219facf5d550.tar.xz mpd-18fc10a92647f06aba065b80a4de219facf5d550.zip |
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.
Diffstat (limited to '')
-rw-r--r-- | src/audio_format.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/audio_format.h b/src/audio_format.h index a6e97e046..ade9d8810 100644 --- a/src/audio_format.h +++ b/src/audio_format.h @@ -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) |