I get often assertions when using Drumgizmo in MusE, and it's always the same:
Code: Select all
sem_timedwait(): Interrupted system call
muse3: ../src/semaphore.cc:152: bool Semaphore::wait(const milliseconds&): Assertion `false' failed.
Aborted (core dumped)
I had a brief look at the code and sem_timedwait checks only for ETIMEDOUT and not for EINTR, as seems to be the case here. Is this intentionally? Normal operation in system programming would be to check for EINTR, recalculate the time in that case and then call sem_timedwait again.
So wouldn't that be better? It would prevent quite some crashes inside MusE.