re, it turns out that SIGIO handling in emacs incorporates too many workarounds, especially when running under X and at this point it's impossible (at least for me) to grasp through the code and find why it fails to work with xcb or X in general.
but fortunately there's a tweak (DISABLE_SIGIO) that makes it use poll exclusively and fixes everything! and also, there's an emacs 23.3 released already. cheers. --- src/s/openbsd.h~ Tue Mar 15 11:56:59 2011 +++ src/s/openbsd.h Tue Mar 15 11:57:25 2011 @@ -36,5 +36,7 @@ #endif +#define BROKEN_SIGIO + /* arch-tag: 7e3f65ca-3f48-4237-933f-2b208b21e8e2 (do not change this comment) */