[pulseaudio-discuss] [PATCH 8/9] module-waveout: Move thread creation

Maarten Bosmans mkbosmans at gmail.com
Wed Mar 16 02:55:45 PDT 2011


---
 src/modules/module-waveout.c |   22 +++++++++++++---------
 1 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/src/modules/module-waveout.c b/src/modules/module-waveout.c
index 44b15da..90d0599 100644
--- a/src/modules/module-waveout.c
+++ b/src/modules/module-waveout.c
@@ -650,7 +650,7 @@ int pa__init(pa_module *m) {
     pa_assert(u->ihdrs);
     u->ohdrs = pa_xmalloc0(sizeof(WAVEHDR) * u->fragments);
     pa_assert(u->ohdrs);
-    for (i = 0;i < u->fragments;i++) {
+    for (i = 0; i < u->fragments; i++) {
         u->ihdrs[i].dwBufferLength = u->fragment_size;
         u->ohdrs[i].dwBufferLength = u->fragment_size;
         u->ihdrs[i].lpData = pa_xmalloc(u->fragment_size);
@@ -668,22 +668,26 @@ int pa__init(pa_module *m) {
 
     u->rtpoll = pa_rtpoll_new();
     pa_thread_mq_init(&u->thread_mq, m->core->mainloop, u->rtpoll);
-    if (!(u->thread = pa_thread_new("waveout-source", thread_func, u))) {
-        pa_log("Failed to create thread.");
-        goto fail;
-    }
 
     if (u->sink) {
         pa_sink_set_asyncmsgq(u->sink, u->thread_mq.inq);
         pa_sink_set_rtpoll(u->sink, u->rtpoll);
-        pa_sink_put(u->sink);
     }
     if (u->source) {
         pa_source_set_asyncmsgq(u->source, u->thread_mq.inq);
         pa_source_set_rtpoll(u->source, u->rtpoll);
-        pa_source_put(u->source);
     }
 
+    if (!(u->thread = pa_thread_new("waveout", thread_func, u))) {
+        pa_log("Failed to create thread.");
+        goto fail;
+    }
+
+    if (u->sink)
+        pa_sink_put(u->sink);
+    if (u->source)
+        pa_source_put(u->source);
+
     return 0;
 
 fail:
@@ -712,7 +716,7 @@ void pa__done(pa_module *m) {
 
     pa_asyncmsgq_send(u->thread_mq.inq, NULL, PA_MESSAGE_SHUTDOWN, NULL, 0, NULL);
     if (u->thread)
-      pa_thread_free(u->thread);
+        pa_thread_free(u->thread);
     pa_thread_mq_done(&u->thread_mq);
 
     if (u->sink)
@@ -733,7 +737,7 @@ void pa__done(pa_module *m) {
         waveOutClose(u->hwo);
     }
 
-    for (i = 0;i < u->fragments;i++) {
+    for (i = 0; i < u->fragments; i++) {
         pa_xfree(u->ihdrs[i].lpData);
         pa_xfree(u->ohdrs[i].lpData);
     }
-- 
1.7.1




More information about the pulseaudio-discuss mailing list