diff --git a/qpulse.cpp b/qpulse.cpp index 9e199f4..bbd5e37 100644 --- a/qpulse.cpp +++ b/qpulse.cpp @@ -6,7 +6,20 @@ QPulse::QPulse(QObject *parent) : ml(pa_threaded_mainloop_new()), c(nullptr) { - pa_threaded_mainloop_start(ml); + int start_retries = 5; + int err = -1; + for(; start_retries --> 0;) { + err = pa_threaded_mainloop_start(ml); + if (err == 0) { + break; + } + } + + // Fatal + if (err != 0) { + perror("pa_threaded_mainloop_start() failure\n"); + exit(EXIT_FAILURE); + } c = pa_context_new( pa_threaded_mainloop_get_api(ml), "pa-card-profile-tray"); pa_context_set_state_callback(c, &QPulse::onConnectionStateChangedSt, this);