Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!usc!snorkelwacker!bloom-beacon!INTELLICORP.COM!PARCEL From: PARCEL@INTELLICORP.COM (Scott Parcel) Newsgroups: comp.windows.x Subject: X event traps, reentrancy Message-ID: <8912192043.AA13595@expo.lcs.mit.edu> Date: 19 Dec 89 20:45:32 GMT Sender: daemon@athena.mit.edu (Mr Background) Organization: The Internet Lines: 24 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 -------