]> code.delx.au - pulseaudio/commitdiff
inform dsp_empty_socket() *after* we emptied the dsp socket, that it is now empty
authorLennart Poettering <lennart@poettering.net>
Wed, 1 Oct 2008 23:02:31 +0000 (01:02 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 1 Oct 2008 23:02:31 +0000 (01:02 +0200)
src/utils/padsp.c

index f2fdede491e4d5577d1019ac436b1e6bbe0667c8..2e6e557586bb2de60a1e230d1428f9e67ca19d6e 100644 (file)
@@ -422,7 +422,7 @@ static void fd_info_unref(fd_info *i) {
     pthread_mutex_lock(&i->mutex);
     assert(i->ref >= 1);
     r = --i->ref;
-        debug(DEBUG_LEVEL_VERBOSE, __FILE__": ref--, now %i\n", i->ref);
+    debug(DEBUG_LEVEL_VERBOSE, __FILE__": ref--, now %i\n", i->ref);
     pthread_mutex_unlock(&i->mutex);
 
     if (r <= 0)
@@ -498,7 +498,6 @@ static void atfork_prepare(void) {
 
     pthread_mutex_lock(&func_mutex);
 
-
     debug(DEBUG_LEVEL_NORMAL, __FILE__": atfork_prepare() exit\n");
 }
 
@@ -550,12 +549,14 @@ static void atfork_child(void) {
         }
 
         if (i->app_fd >= 0) {
-            close(i->app_fd);
+            LOAD_CLOSE_FUNC();
+            _close(i->app_fd);
             i->app_fd = -1;
         }
 
         if (i->thread_fd >= 0) {
-            close(i->thread_fd);
+            LOAD_CLOSE_FUNC();
+            _close(i->thread_fd);
             i->thread_fd = -1;
         }
 
@@ -943,6 +944,10 @@ static int fd_info_copy_data(fd_info *i, int force) {
         api->io_enable(i->io_event, i->io_flags);
     }
 
+    /* So, we emptied the socket now, let's tell dsp_empty_socket()
+     * about this */
+    pa_threaded_mainloop_signal(i->mainloop, 0);
+
     return 0;
 }