summaryrefslogtreecommitdiffstats
path: root/raul/AtomicPtr.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2008-11-16 20:42:11 +0000
committerDavid Robillard <d@drobilla.net>2008-11-16 20:42:11 +0000
commit4f43c8357f109ab8f7b0886a41ae11ac4d07a830 (patch)
tree53a09a703e80ef7f6707354208b74673219adeaf /raul/AtomicPtr.hpp
parentdfd472bbedf71c41dbb464aa60b35d1712cbd7ad (diff)
downloadraul-4f43c8357f109ab8f7b0886a41ae11ac4d07a830.tar.gz
raul-4f43c8357f109ab8f7b0886a41ae11ac4d07a830.tar.bz2
raul-4f43c8357f109ab8f7b0886a41ae11ac4d07a830.zip
Cast glib operations to compile on annoying platforms.
git-svn-id: http://svn.drobilla.net/lad/trunk/raul@1732 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'raul/AtomicPtr.hpp')
-rw-r--r--raul/AtomicPtr.hpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/raul/AtomicPtr.hpp b/raul/AtomicPtr.hpp
index 365b25d..ae51cf0 100644
--- a/raul/AtomicPtr.hpp
+++ b/raul/AtomicPtr.hpp
@@ -28,23 +28,24 @@ class AtomicPtr {
public:
inline AtomicPtr()
- { g_atomic_pointer_set(&_val, NULL); }
+ { g_atomic_pointer_set((volatile gpointer*)&_val, NULL); }
inline AtomicPtr(const AtomicPtr& copy)
- { g_atomic_pointer_set(&_val, copy.get()); }
+ { g_atomic_pointer_set((volatile gpointer*)(&_val), (gpointer)copy.get()); }
inline T* get() const
- { return (T*)g_atomic_pointer_get(&_val); }
+ { return (T*)g_atomic_pointer_get((volatile gpointer*)(&_val)); }
inline void operator=(T* val)
- { g_atomic_pointer_set(&_val, val); }
+ { g_atomic_pointer_set((volatile gpointer*)(&_val), (gpointer)val); }
/** Set value to newval iff current value is oldval */
inline bool compare_and_exchange(int oldval, int newval)
- { return g_atomic_pointer_compare_and_exchange(&_val, oldval, newval); }
+ { return g_atomic_pointer_compare_and_exchange((volatile gpointer*)(&_val), oldval, newval); }
private:
- mutable T volatile* _val;
+ //mutable T* volatile _val;
+ mutable T* volatile _val;
};