[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Help-smalltalk] Good/bad news on the segmentation violation and hangups
From: |
Paolo Bonzini |
Subject: |
[Help-smalltalk] Good/bad news on the segmentation violation and hangups |
Date: |
Thu, 7 Feb 2002 11:01:04 +0100 |
Good news: I've found the cause of the segmentation violation: it's two
stupid mistakes on my part. 1) I was not protecting well enough the queue
of semaphores to be signalled and this caused sharing problems. 2) I was
stupidly reallocating the array of `struct pollfd's under the
filePollingHandler's feet. Both of these are fixed.
Bad news: the cause of the hangups is much worse than I thought: Linux does
not generate SIGIO when output is possible for tty devices!!! The relevant
Linux source code files (in my 2.4.5 kernel) are drivers/char/n_tty.c, where
kill_fasync is *never* called with a third parameter of POLL_OUT (while the
routine that implements poll(2) *does* return POLLOUT|POLLWRNORM. I guess
the only possibility is to do output by polling repeatedly, and input using
SIGIO/SIGURG.
|_ _ _ __
|_)(_)| ),'
------- '---