[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Signal doesn't interrupt read() and wait() - help!
Hello,
I've been trying to get mgetty+sendfax and vgetty working under MiNT.
After kellis pointed out a few things it was mainly problem-free, except
for one big problem. Unfortunately I'm not very familiar with UNIX
programming and I can't figure out what exactly is going wrong here.
In several places, the software uses read() or wait() and remains in the
call for long periods. During this time, it's possible that a signal might
be received.
The signal is being received without a problem, but the read() and wait()
calls do not return when the signal is received. The software relies on
these calls returning with EINTR status whenever a signal is received, but
the calls are just not returning at all.
So although the signal is being delivered, the software is never
processing the signal, since it only processes the signal after the read()
or wait() call does return.
So what's going on here? As far as I can see, UNIX read() and
wait() obviously do get interrupted by a signal, since this software
where the problem shows up is known to work on various UNIX systems. But
it doesn't work under MiNT, because these calls don't return when a signal
arrives. Therefore I can only deduce that this is some sort of bug in
MiNT, but then surely it would have been noticed, and corrected, before.
So I hope someone who knows about this can clarify the situation for me.
Your assistance would be appreciated.
P.S. in case you wondered what this mgetty+sendfax and vgetty software is,
it's a package for handling fax (class 2), data and voice calls via a
modem. mgetty replaces getty and handles incoming calls, sendfax sends
faxes (surprise!) and vgetty replaces getty for handling voice calls.
--
Mario Becroft Auckland, New Zealand
mb@tos.pl.net http://www.pl.net/~mario/ |\__/,| (`\
Tariland, Atari Support in New Zealand _.|o o |_ ) )
tariland@tos.pl.net http://www.pl.net/~mario/tariland/ --(((---(((--------