aboutsummaryrefslogtreecommitdiffstats
path: root/alc/uiddefs.cpp
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2020-01-11 15:10:54 -0800
committerChris Robinson <[email protected]>2020-01-11 15:10:54 -0800
commit6f1c853397ae7a29e064cebe4d8988f192a28946 (patch)
tree5fd89dc5511dd5832869ecc064052620a03d11ec /alc/uiddefs.cpp
parente6e2f509f871061ec917951fb77021856a9a0263 (diff)
Don't allocate the ring buffer for JACK before activation
It seems the JACK server can send buffer size change events during device reset and wait on it, which causes a failure since the change event can't be processed during a reset. It's otherwise impossible to safely disable the change event callback during a reset since the lock is already held and the callback can be waiting to acquire it. The only guarantee we seem to have is the event callback won't be invoked after jack_activate succeeds. So instead, the buffer size can be queried after jack_activate and the ring buffer allocated then, instead of using an event callback. This does mean the buffer size can change with a start() call, but it's better than a failure to start.
Diffstat (limited to 'alc/uiddefs.cpp')
0 files changed, 0 insertions, 0 deletions