Closed nbriggs closed 3 years ago
Is this new or has it been happening for a while?
It's new.
On Dec 15, 2020, at 7:09 PM, Bruce Mitchener notifications@github.com wrote:
Is this new or has it been happening for a while?
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/Interlisp/medley/issues/82#issuecomment-745734404, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB6DAWNAUFSCYPTFGGZT7FDSVAQHXANCNFSM4U5JKVZQ.
I'm pretty sure it's b234064d91924a86dffd3f60f96588097f9dff47 where I changed fd_set handling, and couldn't test on the Solaris box because it was offline due to network problems.
On Dec 15, 2020, at 7:09 PM, Bruce Mitchener notifications@github.com wrote:
Is this new or has it been happening for a while?
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/Interlisp/medley/issues/82#issuecomment-745734404, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB6DAWNAUFSCYPTFGGZT7FDSVAQHXANCNFSM4U5JKVZQ.
I'm breaking for dinner, but without having read the code I'd guess that I managed to turn on signals before the signal handler was setup. Probably in the ethernet code, and we only have the ethernet turned on on SunOS5.
The root cause of the problem is that init_Xevent()
calls ioctl(..., I_SETSIG, S_INPUT)
before the Lisp code has initialized the signal handlers.
A solution will have to wait until tomorrow.
Is that even necessary anymore? On some platforms, I think the Xorg server sets up signal-based I/O correctly, but I don't really know what ldex
is doing here. (And is your version of Solaris even using Xorg?)
It may not be necessary. Yes, Solaris 11.4 on SPARC does use the Xorg server. It's trying to take an interrupt for all key-press and mouse-movement events. It's doing that on the FD for the X display socket and Xorg doesn't know anything about it. In theory, the select() should fire and we should process the events right away anyway -- it may have been put in there before they had the select() working properly, or it may be paranoia, or it may actually get your keys a ms earlier...
On Dec 15, 2020, at 10:54 PM, Bruce Mitchener notifications@github.com wrote:
Is that even necessary anymore? On some platforms, I think the Xorg server sets up signal-based I/O correctly, but I don't really know what ldex is doing here. (And is your version of Solaris even using Xorg?)
Fixed by Interlisp/maiko@fe0f9fff2cfe83e90b8ef663c11a31fbde4d3a8e (PR Interlisp/maiko#78)
Starting ldex results in a "Pollable Event" message and immediate exit. Works OK on macOS, Ubuntu, FreeBSD