#430: Threaded mainloop API steals signals unnecessarily -----------------------+---------------------------------------------------- Reporter: jcornwall | Owner: lennart Type: defect | Status: new Priority: normal | Milestone: Component: libpulse | Severity: normal Keywords: | -----------------------+---------------------------------------------------- The following code in src/pulse/threaded-mainloop.c:
{{{ /* Make sure that signals are delivered to the main thread */ sigfillset(&mask); pthread_sigmask(SIG_BLOCK, &mask, NULL); }}} Interferes badly with client applications that use signals for other purposes, including the Mono runtime environment. This functionality is only needed when pa_signal_init() has been called but is indiscriminately applied to all clients, when only a fraction will use this feature. Attached is a patch to conditionally run this code when pa_signal_init() has been called. Because mainloop-signal.c is API-agnostic wiring the two together is tricky, so I opted to add an internal (exposed but not exported) API-agnostic function to act as a buffer. The patched library works with signal-dependent applications and does not alter functionality in other applications where pa_signal_init() is called, as it must before using signalling features. -- Ticket URL: <http://pulseaudio.org/ticket/430> PulseAudio <http://pulseaudio.org/> The PulseAudio Sound Server _______________________________________________ pulseaudio-tickets mailing list pulseaudio-tickets@mail.0pointer.de https://tango.0pointer.de/mailman/listinfo/pulseaudio-tickets