raise() produces random behaviour in Cygwin 3.5.5
Bruno Haible
bruno@clisp.org
Wed Dec 25 06:21:44 GMT 2024
An invocation of raise(SIGABRT), that is, of a synchronous signal, produces
random behaviour in Cygwin 3.5.5: Sometimes it succeeds, sometimes it fails
with error ENOSYS. In previous releases of Cygwin and in all other operating
systems, it always succeeds.
How to reproduce:
Find test-sigaction.c attached.
Compile it and run it 10 times:
$ x86_64-pc-cygwin-gcc -O2 -Wall test-sigaction.c \
&& ./a && ./a && ./a && ./a && ./a && ./a && ./a && ./a && ./a && ./a
ret = -1, errno = 88
ret = -1, errno = 88
ret = 0, errno = 0
ret = -1, errno = 88
ret = -1, errno = 88
ret = -1, errno = 88
ret = -1, errno = 88
ret = -1, errno = 88
ret = -1, errno = 88
ret = 0, errno = 0
This unit test is part of Gnulib. Really, it is a pity that none of the
Cygwin maintainers is running the Gnulib tests before making a new Cygwin
release.
Bruno
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test-sigaction.c
Type: text/x-csrc
Size: 1760 bytes
Desc: not available
URL: <https://cygwin.com/pipermail/cygwin/attachments/20241225/64aa8ab4/attachment.bin>
More information about the Cygwin
mailing list