[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: My first DontZap use case while testing F11 beta



On Wednesday 15 April 2009 04:44:40 Peter Hutterer wrote:
> On Tue, Apr 14, 2009 at 10:54:10AM +0500, Suren Karapetyan wrote:
> > On Tuesday 14 April 2009 05:50:34 Peter Hutterer wrote:
> > > - the keyboard driver now uses XKB instead of its own hardcoded
> > > zapping.
> >
> > Does this solution have the same chance to kill X as the hardcoded one
> > had? I mean: is it possible for situations where this solution doesn't
> > work but the old one does? (like broken grabs...)
>
> There's no difference to before.
>
> Let me explain in a bit more detail. zapping consists of two parts:
> - the Terminate_Server XKB symbol triggers the action, if you don't have
> this symbol, you can't trigger it.
> - The DontZap setting controls whether the Terminate_Server action will
>   actually do anything when you trigger it.
>
> The keyboard driver had - from the times before XKB was around - code for
> so-called "Special Key" handling. Including a hard-coded path for C-A-B.
> This means that even if you move the Terminate_Server symbol to another key
> or remove it altogether, the keyboard driver would zap the server on C-A-B.
> This is what's been removed, it now posts the keycode, and passes through
> the xkb action handling.
>
> The only time when the old code _could_ have worked but the new one didn't
> is if the server is stuck somewhere in the main loop but still handles
> signals fine - so the zapping would be triggered during the SIGIO handling.
>
> I said "could", because the keyboard driver didn't use signals for input
> events, it just got polled (checked the git logs, goes back to the original
> X.Org import from Xfree86). So kbd was relying on a working main loop
> anyway.
>
> The only difference is that we can move or remove the Terminate_Server
> symbol key now.
>
> Makes sense?
>
> Cheers,
>   Peter

Thanks for the explanation!
It makes sense now. 


Suren


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]