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

Reply via email to