Re: [Jack-Devel] System signals and JACK
On 10/23/14 16:52, Robin Gareus wrote:
> On 10/23/2014 09:46 AM, Hans Petter Selasky wrote:
>> Hi,
>>
>> Some applications are using signals() and the jack client needs to
>> ignore these. Consequently read/write calls should be wrapped. See
>> attached patch. Can this be put upstream? Probably same issue with jack2.
>>
>
> JACK is a *realtime* audio system, if application code changes the
> behavior so that jack read/writes to be interrupted by a EINTR, it
> really seems something is broken by design there.
>
> signal() is sent to the main process thread. It should not be able to
> affect the jack-process callback thread at all. (Marking the jack thread
> as TASK_UNINTERRUPTIBLE could be a way forward or explicitly using
> pthread_sigmask() - but those are hacks and workarounds).
>
> Either way I cannot reproduce the problem in the first place, jltcgen
> from https://github.com/x42/ltc-tools uses SIGHUP to re-sync and that
> never caused issues here with jack2 on various architectures.
>
Hi,
I have a QT4/5.x based application using JACK, and this is a race. On
one machine the issue never triggered. On another it happens from time
to time, and prevents the JACK-client from registering. Have have not
seen a problem in the jack-process callback thread yet, but when the
register call is done from the main() thread. Initially I thought there
was a problem with jackd, and I did a "strace" / "ktrace" and the
problem went away.
QT4/5.x has similar wrappers around its read/write operations.
--HPS
1414438966.17922_0.ltw:2, <544EA037.3030806 at selasky dot org>