summaryrefslogtreecommitdiff
path: root/src/utils
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2008-10-02 01:02:31 +0200
committerLennart Poettering <lennart@poettering.net>2008-10-02 01:02:31 +0200
commit54afcf25980662d3033328705ec481c62b223e56 (patch)
treee3fb80346ed322f7f634c04513ff9dae99c18d9e /src/utils
parent9f5d052d93a85bb8e4376732fe4473e87bf264f5 (diff)
inform dsp_empty_socket() *after* we emptied the dsp socket, that it is now empty
Diffstat (limited to 'src/utils')
-rw-r--r--src/utils/padsp.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/utils/padsp.c b/src/utils/padsp.c
index f2fdede49..2e6e55758 100644
--- a/src/utils/padsp.c
+++ b/src/utils/padsp.c
@@ -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;
}