[PATCH 2/4] X event queue mutex

Simon Thum simon.thum at gmx.de
Thu Oct 2 01:36:30 PDT 2008


Keith Packard wrote:
> On Wed, 2008-10-01 at 21:39 -0300, Tiago Vignatti wrote:
> 
>> A mutex is needed because the X event queue is a critical region. Though
>> the X event queue is re-entrant, we cannot guarantee the simultaneous
>> processing by both main and input threads.
> 
> The input queue is written so that each user modifies only one of the
> two pointers (head and tail). There shouldn't be any need to have a
> mutex which protects both of these values together, and doing so
> prevents mouse motion while the server is processing events.
> 
> Is there something fundamentally different between threaded input and
> SIGIO- or kernel-based input that I'm missing here?
I believe tiagos words are a bit misleading: The mutex makes it possible 
to block event enqueuing, which is needed to guarantee order of events 
enqueued on the main thread. If I got it right, the intent is to 
'emulate' OsBlockSignals(), though I'm missing that bit.



More information about the xorg mailing list