My first DontZap use case while testing F11 beta

Peter Hutterer peter.hutterer at who-t.net
Tue Apr 14 23:44:40 UTC 2009


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




More information about the fedora-devel-list mailing list