[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