]> code.delx.au - pulseaudio/blobdiff - src/pulsecore/fdsem.h
fdsem: Use atomic.h
[pulseaudio] / src / pulsecore / fdsem.h
index f38ef205cfd2168a174a21a10d6b1b05d38c60bc..1b1a5a580834a96d10a132b2e39d97227b3a8cd2 100644 (file)
@@ -1,8 +1,6 @@
 #ifndef foopulsefdsemhfoo
 #define foopulsefdsemhfoo
 
-/* $Id$ */
-
 /***
   This file is part of PulseAudio.
 
 ***/
 
 #include <sys/types.h>
-#include <pulse/def.h>
 
 /* A simple, asynchronous semaphore which uses fds for sleeping. In
  * the best case all functions are lock-free unless sleeping is
  * required.  */
 
+#include <pulsecore/atomic.h>
+
 typedef struct pa_fdsem pa_fdsem;
 
+typedef struct pa_fdsem_data {
+    pa_atomic_t waiting;
+    pa_atomic_t signalled;
+    pa_atomic_t in_pipe;
+} pa_fdsem_data;
+
 pa_fdsem *pa_fdsem_new(void);
+pa_fdsem *pa_fdsem_open_shm(pa_fdsem_data *data, int event_fd);
+pa_fdsem *pa_fdsem_new_shm(pa_fdsem_data *data);
 void pa_fdsem_free(pa_fdsem *f);
 
 void pa_fdsem_post(pa_fdsem *f);
@@ -45,5 +52,4 @@ int pa_fdsem_get(pa_fdsem *f);
 int pa_fdsem_before_poll(pa_fdsem *f);
 int pa_fdsem_after_poll(pa_fdsem *f);
 
-
 #endif