On Thu, 2006-07-27 at 22:08 +0200, Tilman Sauerbeck wrote: > > Any idea what's wrong with the locking here?
IIRC it's due to locking oddities in the mga DRI driver, I'm sure Kristian knows more about it. > Hints on when DRIDoBlockHandler is called or why it can be called even > though the DRI lock isn't held are appreciated :) Are you familiar with the X server's function wrapping mechanism? DRI(Do)BlockHandler() is the DRI module's wrapper of the X server's BlockHandler screen hook, which it calls whenever it has run out of requests and goes to sleep for a bit. For symmetry, there's a DRILock() call in DRIDoWakeupHandler(), which is a wrapper for the hook the X server calls before it starts processing new requests. The idea is for the DRI module to automatically hold the lock whenever the X server might need hardware access. Hope this helps, -- Earthling Michel Dänzer | http://tungstengraphics.com Libre software enthusiast | Debian, X and DRI developer ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV -- _______________________________________________ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel