[pulseaudio-discuss] mainloop n defer events assertion

Tanu Kaskinen tanuk at iki.fi
Sat Apr 23 10:26:13 UTC 2016


On Wed, 2016-04-20 at 21:30 +0000, John Promersberger wrote:
> Noob.
> 
> 
> I thought my code was doing really well, but it has started to
> terminate on the mainloop assertion where the number of deferred
> events is greater than 0 (mainloop.c: ~280 if I remember correctly).
> Looks like it is in mainloop->defer_enable().   Seems to mostly occur
> when I'm corking/fllushing/disconnecting/decrementing reference count
> of a stream.  After I tear down the stream, I build a different
> stream to play a different sound.  I've since taken out the corking
> of the stream.
> 
> 
> I couldn't find anything useful to read regarding this.  I'm not
> creating an deferred events explicitly myself.
> 
> 
> 
> Any ideas that could resolve this?

Do you have multiple threads by any chance? I've seen that kind of an
assertion with code that accessed the mainloop from multiple threads.
libpulse is not thread-safe, so accessing libpulse objects from
multiple threads is not supported (unless you yourself implement the
necessary locking to make it safe).

-- 
Tanu


More information about the pulseaudio-discuss mailing list