summaryrefslogtreecommitdiffstats
path: root/src/server/BufferFactory.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2013-01-11 03:35:17 +0000
committerDavid Robillard <d@drobilla.net>2013-01-11 03:35:17 +0000
commita90eec5c87af4dec9f8f45223cd228cb7ca674c6 (patch)
tree5363986923fc4ed2d025a975d0f890df9733269a /src/server/BufferFactory.cpp
parent8caefa2c374ecf3af9ea455ce24784d398254ddf (diff)
downloadingen-a90eec5c87af4dec9f8f45223cd228cb7ca674c6.tar.gz
ingen-a90eec5c87af4dec9f8f45223cd228cb7ca674c6.tar.bz2
ingen-a90eec5c87af4dec9f8f45223cd228cb7ca674c6.zip
Use C++11 atomics.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4916 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/server/BufferFactory.cpp')
-rw-r--r--src/server/BufferFactory.cpp22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/server/BufferFactory.cpp b/src/server/BufferFactory.cpp
index 064b5080..924a6f9f 100644
--- a/src/server/BufferFactory.cpp
+++ b/src/server/BufferFactory.cpp
@@ -36,10 +36,10 @@ BufferFactory::BufferFactory(Engine& engine, URIs& uris)
BufferFactory::~BufferFactory()
{
_silent_buffer.reset();
- free_list(_free_audio.get());
- free_list(_free_control.get());
- free_list(_free_sequence.get());
- free_list(_free_object.get());
+ free_list(_free_audio.load());
+ free_list(_free_control.load());
+ free_list(_free_sequence.load());
+ free_list(_free_object.load());
}
Forge&
@@ -97,17 +97,17 @@ BufferFactory::get(LV2_URID type,
bool real_time,
bool force_create)
{
- Raul::AtomicPtr<Buffer>& head_ptr = free_list(type);
- Buffer* try_head = NULL;
+ std::atomic<Buffer*>& head_ptr = free_list(type);
+ Buffer* try_head = NULL;
if (!force_create) {
Buffer* next;
do {
- try_head = head_ptr.get();
+ try_head = head_ptr.load();
if (!try_head)
break;
next = try_head->_next;
- } while (!head_ptr.compare_and_exchange(try_head, next));
+ } while (!head_ptr.compare_exchange_weak(try_head, next));
}
if (!try_head) {
@@ -147,12 +147,12 @@ BufferFactory::create(LV2_URID type, uint32_t capacity)
void
BufferFactory::recycle(Buffer* buf)
{
- Raul::AtomicPtr<Buffer>& head_ptr = free_list(buf->type());
+ std::atomic<Buffer*>& head_ptr = free_list(buf->type());
Buffer* try_head;
do {
- try_head = head_ptr.get();
+ try_head = head_ptr.load();
buf->_next = try_head;
- } while (!head_ptr.compare_and_exchange(try_head, buf));
+ } while (!head_ptr.compare_exchange_weak(try_head, buf));
}
} // namespace Server