> On 30 Jan 2018, at 20:14, Otto Moerbeek <[email protected]> wrote: > > On Tue, Jan 30, 2018 at 07:57:14PM +0000, Al Poole wrote: > >> Hi, >> >> I've been having some issues with select/sigprocmask and signals on >> OpenBSD 6.2 (amd64). >> >> Since 6.0, I've been working on EFL (enlightenment.org) on FreeBSD and >> OpenBSD. OpenBSD broke sometime after the 6.0 release (in the mainloop >> SIGCHLD were getting lost and applications would hang). >> >> I'm hoping this test-case might also explain the issues with EFL. >> >> The test code URL: >> >> http://haxlab.org/stuff/sig.c.txt >> >> EXPECTED OUTPUT >> >> # identical on Linux, FreeBSD, MacOS and Windows POSIX emulation. >> >> $ ./a.out >> Timeout >> Timeout >> Timeout >> buf: Yo >> >> Timeout >> Timeout >> Timeout >> buf: Yo >> >> Timeout >> Timeout >> Timeout >> buf: Yo >> >> Child exits! >> Exiting! >> >> BELOW THE OUTPUT ON OPENBSD 6.2 (amd64): >> >> $ ./a.out >> ^Cbuf: Yo >> >> >> ^Cbuf: Yo >> >> ^CExiting! >> >> The code should handle SIGINT (CTRL^C) gracefully, but I noticed >> running the testcase on OpenBSD without interrupting (SIGINT) the >> behaviour is so wildly different from testing on all the other major >> UNIX and Unix-like systems. >> >> The OpenBSD handling of SIGINT doesn't work either in this case. >> >> I wonder if anyone could help here? Whether I am doing something >> wrong, or maybe even finding the OpenBSD EFL main loop signal issue? >> >> Thanks very much, >> >> Al Poole > > This is what I see, tested on armv7 and amd64, without pressing ^C. It > is not clear from your description if you are doing that during the > runs on the "working" systems. > > $ cc -O2 x.c > $ ./a.out > Timeout > Timeout > Timeout > buf: Yo > > Timeout > Timeout > Timeout > buf: Yo > > Timeout > Timeout > Timeout > buf: Yo > > Child exits! > Exiting! > > So the expected output. How do you compile/run your program > *exactly*? > > -Otto
Hi Otto, Thanks for the reply. Yes sorry that was slightly ambiguous. I’m glad to see the above. Running on 6.2 GENERIC#2 amd64 Compiling -O0 and -O2 same behaviours. I’m testing on a single-core virtualised machine on linode’s platform. Without interrupting (CTRL^C) the output is: $ ./a.out Timeout Timeout Timeout buf: Yo …5 minutes into execution. ^Cbuf: Yo ^Cbuf: Yo Exiting! Child exits!

