[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