pulsesink: rework context sharing
authorStefan Kost <ensonic@users.sf.net>
Mon, 13 Sep 2010 13:24:26 +0000 (16:24 +0300)
committerStefan Kost <ensonic@users.sf.net>
Mon, 13 Sep 2010 13:59:22 +0000 (16:59 +0300)
commitf62dc6976b611384c98efb37d407b5299daf8c17
treebf32f11839921765c89427e0212a9f7608ed2e66
parentd541f5e24db9c88abeb29be9c134636934c0f131
pulsesink: rework context sharing

We also need to share the main-loop threads as this owns the context. Thus have
a class wide main-loop thread. From this we create a context per client-name.
Instead of always looking up the context, we keep this with the instance. The
reverse mapping is only needed in pulse singal handlers. This saves a lot of
locking. Also one signal handler becomes simpler as ther eis only one mainloop
to notify.

Now valgind happy - no leaks, no bad reads/writes.

This reverts major parts of commit 69a397c32f4baf07a7b2937c610f9e8f383e9ae9.

Fixes #628996
ext/pulse/pulsesink.c
ext/pulse/pulsesink.h