Re: xmms, kjofol and deadlock
Andrew Burgess <[email protected]>
| Newsgroups | gmane.comp.multimedia.xmms.devel |
|---|---|
| Message-ID | <[email protected]> |
* Andrew Burgess <[email protected]> [2004-03-22 18:37:31 +0000]: > I am using xmms 1.2.10 compiled from source, and kjofol visualisation > plug-in from: > http://www.csse.monash.edu.au/~timf/xmms.html > > Everything works fine except, when using a kjofol playlist editor to > add tracks or remove tracks. > > The problem is that xmms locks up - it turns out to be a threading > issue, and xmms is hanging on a call to GDK_THREADS_ENTER() Ok, I figured it out. Firstly I should apologise, the playlist editor never worked through kjofol (it does say this on the web page, I clearly can't read), so even when the deadlocking problem is solved it doesn't really "work" as you would expect it too. The problem is that the kjofol callback invoked when the clear button is pressed does not use GDK_THREADS_LEAVE() and so is still holding the lock when the xmms remote call handling thread tries to get it - they are then deadlocked. My next question is really OT, but something that has puzzled me while I tried to work this all out was this: when the gtk callbacks are made for button presses they are holding the gdk thread lock (as the call the gtk mainloop is surrounded by lock ... unlock) yet the call made to the idle_func, caused by gtk_timeout_add, *does not* hold the lock - despite still being called (I thought) from within the gtk main loop. If someone could explain why that is (I guess I am missing something) that would be great. Thanks for your time Andrew B