Thread View: gnu.epoch.misc
1 messages
1 total messages
Started by Scott Stanton
Tue, 11 Aug 1992 17:25
Solaris 2.0 patch
Author: Scott Stanton
Date: Tue, 11 Aug 1992 17:25
Date: Tue, 11 Aug 1992 17:25
41 lines
1623 bytes
1623 bytes
Under Solaris 2.0, Epoch 4.1 will exit spontaneously if it receives two
SIGIO's very close together. This results from a "feature" of signal().
Signal() does not set the signal mask for the signal it is handling. Since
it also resets the signal handler back to SIG_DFL, epoch exits on the second
signal.
The following patch will fix the problem by using sigset() instead of
signal(). sigset() behaves like BSD signal().
*** src/keyboard.c Tue Aug 11 09:54:03 1992
--- src/keyboard.c.new Tue Aug 11 10:14:20 1992
***************
*** 1468,1478 ****
--- 1468,1480 ----
extern int select_alarmed;
#endif
+ #ifndef SUNOS_5
#ifdef USG
/* USG systems forget handlers when they are used;
must reestablish each time */
signal (signo, input_available_signal);
#endif /* USG */
+ #endif /* SUNOS_5 */
#ifdef BSD4_1
sigisheld (SIGIO);
***************
*** 2170,2176 ****
--- 2172,2182 ----
#endif /* HAVE_TERMIO */
/* Note SIGIO has been undef'd if FIONREAD is missing. */
#ifdef SIGIO
+ #ifdef SUNOS_5
+ sigset (SIGIO, input_available_signal);
+ #else /* not SUNOS_5 */
signal (SIGIO, input_available_signal);
+ #endif /* not SUNOS_5 */
#endif /* SIGIO */
}
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads