revid: deadlock when error happens in setupPipeline

Issue #313 resolved
Trek Hopton created an issue

In the revid setup process, if an error happens in the setupPipeline function eg. setupAudio returns an error, it causes a deadlock instead of stopping revid and logging the error: setupPipeline returns the err to → reset → Start which calls r.mu.Lock() then r.Stop(), the deadlock happens when Stop() calls r.IsRunning() which also calls r.mu.Lock(). r.IsRunning deadlocks because r.mu is still locked by the call in r.Start.

Comments (1)

  1. Log in to comment