diff options
-rw-r--r-- | libs/ardour/butler.cc | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/libs/ardour/butler.cc b/libs/ardour/butler.cc index cd00965062..a89e8295d2 100644 --- a/libs/ardour/butler.cc +++ b/libs/ardour/butler.cc @@ -328,7 +328,19 @@ void Butler::queue_request (Request::Type r) { char c = r; - _xthread.deliver (c); + if (_xthread.deliver (c) != 1) { + /* the x-thread channel is non-blocking + * write may fail, but we really don't want to wait + * under normal circumstances. + * + * a lost "run" requests under normal RT operation + * is mostly harmless. + * + * TODO if ardour is freehweeling, wait & retry. + * ditto for Request::Type Quit + */ + assert(1); // we're screwd + } } void |