signalfd() semantics after execve()

From: Michael Kerrisk
Date: Sat Jul 14 2007 - 03:41:59 EST


Davide,

I'm working on the signalfd(2) man page, and I've come
acorss some puzzling behaviour...

What are the intended semantics of a signalfd file descriptor
after an execve()?

As far as I can work out, after an execve() the file descriptor
is still available, but reads from it always return 0, even if:

a) there were signals pending before the execve().
However, sigpending() shows the signal as pending,
and the signal can be accepted using sigwaitinfo().

b) we generate a signal after the execve().

Is this intended behavior (the "orphaned sighand" condition
mentioned in the draft man page you sent me?)? Is it a bug?

Cheers,

Michael

--
Michael Kerrisk
maintainer of Linux man pages Sections 2, 3, 4, 5, and 7

Want to help with man page maintenance?
Grab the latest tarball at
http://www.kernel.org/pub/linux/docs/manpages ,
read the HOWTOHELP file and grep the source
files for 'FIXME'.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/