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

Reply via email to