On Mon, 18 May 1998, Philip Hazel wrote:
> On Fri, 15 May 1998, Mark Baker wrote:
>
> > I would have though using sigaction on all the systems that support it, and
> > whatever exim currently does on the old ones that don't would be the best
> > solution.
>
> Indeed. Yes, thanks for that suggestion. I will do that.
I have done this work, and it seems to be OK on the systems I have
tried, though I do not have access to a Linux with the new libc.
Therefore, it would be helpful if somebody could run a little test
program on such a system. If anybody feels like running it on any other
OS and letting me know what happens, please feel free. Instructions for
running the test are:
1. Fetch the file os.c from
ftp://ftp.cus.cam.ac.uk/pub/software/programs/exim/Testing/os.c
2. Compile it with
gcc -DSTAND_ALONE os.c
3. Run the resulting program. The output should look like this:
Testing restarting signal; wait for handler message, then type a line
Used SA_RESTART
SIGALRM handler run
This is my input line
Read: This is my input line
Testing non-restarting signal; should read no data after handler message
Used sigaction() with flags = 0
SIGALRM handler run
No data read
Testing load averages
cpu time = 0.00 load average not available
There should be a short pause before first "SIGALRM handler run" line,
after which it should pause again, at which point you must type a line
of input. This should get reflected after "Read:". If there is a pause
after the second "SIGALRM handler run" and you have to type more input,
then it is not working as expected.
Disregard the "Testing load averages" stuff. That's there for a
different reason.
--
Philip Hazel University Computing Service,
P.Hazel@??? New Museums Site, Cambridge CB2 3QG,
ph10@??? (sic) England. Phone: +44 1223 334714
--
*** Exim information can be found at
http://www.exim.org/ ***