JackPosixProcessSync: Fix mutex owner on TimedWait() timeout.
Per POSIX definition, pthread_cond_timedwait() re-acquires the mutex when a timeout occurs and ETIMEDOUT is returned. In that case also mark the waiting thread as owner again, for consistency. Otherwise subsequent attempts to unlock the mutex will fail, leaving the mutex locked forever.
This commit is contained in:
parent
f14409bb92
commit
886b35c3bd
|
@ -122,7 +122,7 @@ bool JackPosixProcessSync::TimedWait(long usec)
|
|||
time.tv_nsec = (next_date_usec % 1000000) * 1000;
|
||||
|
||||
res = pthread_cond_timedwait(&fCond, &fMutex, &time);
|
||||
if (res != 0) {
|
||||
if (res != 0 && res != ETIMEDOUT) {
|
||||
jack_error("JackPosixProcessSync::TimedWait error usec = %ld err = %s", usec, strerror(res));
|
||||
} else {
|
||||
fOwner = pthread_self();
|
||||
|
|
Loading…
Reference in New Issue