]> git.sesse.net Git - vlc/commitdiff
Add helpers to store floats into vlc_atomic_t
authorRémi Denis-Courmont <remi@remlab.net>
Tue, 9 Aug 2011 15:48:13 +0000 (18:48 +0300)
committerRémi Denis-Courmont <remi@remlab.net>
Tue, 9 Aug 2011 15:33:46 +0000 (18:33 +0300)
(Lets assume that uintptr_t is big enough, i.e. 32-bits).

include/vlc_atomic.h

index 39d02b4b514283153b2ed6addac560cd063a4b95..d21c8ad3b5b7b3a42ff164aae24a7f33b8fd0045 100644 (file)
@@ -53,4 +53,21 @@ static inline uintptr_t vlc_atomic_dec (vlc_atomic_t *atom)
 VLC_API uintptr_t vlc_atomic_swap(vlc_atomic_t *, uintptr_t);
 VLC_API uintptr_t vlc_atomic_compare_swap(vlc_atomic_t *, uintptr_t, uintptr_t);
 
+/** Helper to retrieve a single precision from an atom. */
+static inline float vlc_atomic_getf(const vlc_atomic_t *atom)
+{
+    union { float f; uintptr_t i; } u;
+    u.i = vlc_atomic_get(atom);
+    return u.f;
+}
+
+/** Helper to store a single precision into an atom. */
+static inline float vlc_atomic_setf(vlc_atomic_t *atom, float f)
+{
+    union { float f; uintptr_t i; } u;
+    u.f = f;
+    vlc_atomic_set(atom, u.i);
+    return f;
+}
+
 #endif