From: Ronald S. B. <rb...@ro...> - 2004-11-24 12:49:08
|
Hi Martin, On Tue, 2004-11-23 at 09:59, Martin Soto wrote: > Of course, I'd still appreciate the (hard)core guys to look into this > issue if they haven't already. OK, so I'm not the most hardcore guy, but I looked at it anyway, and there is some issues, both theoretical and practical. Let me start with theory. You lock the mutex in the state change function and then call the parent_class->change_state function inside this critical code part. The parent might decide to do negotiation in here. You lock the mutex in sink_link as well. That's a potential deadlock. I know you have to lock because you're inside a gcond here, but this seems bad. I think we should lock in sink_link as well and not lock in state_change, or at least not when calling the parent change_state function. Now practical: chained ogg in totem no longer works. :). Wim believes it's related to you waiting for the queue to drain while it's not running. That's another deadlock. Ronald -- Ronald S. Bultje <rb...@ro...> |