[comp.windows.x] X event traps, reentrancy

PARCEL@INTELLICORP.COM (Scott Parcel) (12/20/89)

 I'm looking for good ways to process X events as they arrive in a process
 which contains some code which cannot be constrained to check for events
 or be cooperative in any way.  My plan was to use SIGIO signals but I have
 some concerns:
   1) I've heard that X is not reentrant and if the signal handler enters X
      while the interupted code is in X this could cause a problem.  (I've
      seen some evidence to this effect.)  Also, it is difficult for me
      to guaranttee this does not happen.
      Does anyone understand the exact reentrancy limitations of X ?

   2) I'm concerned that SIGIO signals do not always occur as needed and
      that I cannot depend on them to do all of my event processing.  I've
      tried using XSync to help, but I've seen XSync hang.

  I have also considered using XSelectInput to trap events in another process
  and them forward them to the main process in a controlled manner.  This would
  appear not to work well for us because of the need to select input on every
  single widget -- am I missing something ?

  If anyone has any suggestions on how to reliably catch and process X events
  given my constraints or info on reentrancy I'd appreciate it.
-- scott      parcel@intellicorp.com
-------