<AlbertA> @vogons: looks like the issue is the TimerGSource aquires a read-lock, dispatches it (i.e. alarm fired), gets pre-empted
--> JohnLea_ (<email address hidden>) has joined #mir
<AlbertA> @vogons: compositor_release fires (from compositor thread), acquires buffer queue mutex
@vogons: attempts to cancel alarm but deadlocks because the previous alarm handler is waiting for the buffer queue mutex and cannot aquire a write lock to the GTimerSource mutex
Adding AlbertA's analysis.
<AlbertA> @vogons: looks like the issue is the TimerGSource aquires a read-lock, dispatches it (i.e. alarm fired), gets pre-empted
--> JohnLea_ (<email address hidden>) has joined #mir
<AlbertA> @vogons: compositor_release fires (from compositor thread), acquires buffer queue mutex
@vogons: attempts to cancel alarm but deadlocks because the previous alarm handler is waiting for the buffer queue mutex and cannot aquire a write lock to the GTimerSource mutex