[pulseaudio-commits] r1341 - in /trunk/src: Makefile.am pulsecore/refcnt.h
svnmailer-noreply at 0pointer.de
svnmailer-noreply at 0pointer.de
Mon Aug 28 18:15:51 PDT 2006
Author: lennart
Date: Tue Aug 29 03:15:51 2006
New Revision: 1341
URL: http://0pointer.de/cgi-bin/viewcvs.cgi?rev=1341&root=pulseaudio&view=rev
Log:
add lock-free reference counting macros, based on libatomic-ops
Added:
trunk/src/pulsecore/refcnt.h (with props)
Modified:
trunk/src/Makefile.am
Modified: trunk/src/Makefile.am
URL: http://0pointer.de/cgi-bin/viewcvs.cgi/trunk/src/Makefile.am?rev=1341&root=pulseaudio&r1=1340&r2=1341&view=diff
==============================================================================
--- trunk/src/Makefile.am (original)
+++ trunk/src/Makefile.am Tue Aug 29 03:15:51 2006
@@ -527,7 +527,9 @@
pulsecore/strbuf.h \
pulsecore/tokenizer.h \
pulsecore/creds.h \
- pulsecore/shm.h
+ pulsecore/shm.h \
+ pulsecore/llist.h \
+ pulsecore/refcnt.h
lib_LTLIBRARIES += libpulsecore.la
Added: trunk/src/pulsecore/refcnt.h
URL: http://0pointer.de/cgi-bin/viewcvs.cgi/trunk/src/pulsecore/refcnt.h?rev=1341&root=pulseaudio&view=auto
==============================================================================
--- trunk/src/pulsecore/refcnt.h (added)
+++ trunk/src/pulsecore/refcnt.h Tue Aug 29 03:15:51 2006
@@ -1,0 +1,41 @@
+#ifndef foopulserefcntfoo
+#define foopulserefcntfoo
+
+/* $Id$ */
+
+/***
+ This file is part of PulseAudio.
+
+ PulseAudio is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ PulseAudio is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with PulseAudio; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA.
+***/
+
+#include <atomic_ops.h>
+
+#define PA_REFCNT_DECLARE volatile AO_t _ref
+
+#define PA_REFCNT_INIT(p) \
+ AO_store_release_write(&(p)->_ref, 1)
+
+#define PA_REFCNT_INC(p) \
+ AO_fetch_and_add1_release_write(&(p)->_ref)
+
+#define PA_REFCNT_DEC(p) \
+ (AO_fetch_and_sub1_release_write(&(p)->_ref)-1)
+
+#define PA_REFCNT_VALUE(p) \
+ AO_load_acquire_read(&(p)->_ref)
+
+#endif
Propchange: trunk/src/pulsecore/refcnt.h
------------------------------------------------------------------------------
svn:keywords = Id
More information about the pulseaudio-commits
mailing list