Print this page
OS-5370 panic in signalfd (fix mancheck)
OS-5370 panic in signalfd
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>
*** 82,91 ****
--- 82,100 ----
uint64_t ssi_stime; /* system CPU time consumed (SIGCHLD) */
uint64_t ssi_addr; /* address that generated signal */
uint8_t ssi_pad[48]; /* pad size to 128 bytes */
} signalfd_siginfo_t;
+ NOTES
+ File descriptor duplication during fork presents a challenge to the
+ signalfd facility since signal data and events are dependent on the
+ process from which they are queried. Its use with caching event systems
+ such as epoll(5), /dev/poll, or port_create(3C) can result in undefined
+ behavior if signalfd and polling descriptors are used together after
+ being shared across a fork. Such restrictions do not apply if the child
+ only calls close(2) on the descriptors.
+
RETURN VALUES
Upon successful completion, a file descriptor associated with the
instance is returned. Otherwise, -1 is returned and errno is set to
indicate the error. When fd is not -1 and there is no error, the value
of fd is returned.
*** 104,111 ****
the calling process.
ENODEV Unable to allocate state for the file descriptor.
SEE ALSO
! poll(2), sigwait(2), sigsetops(3C), sigwaitinfo(3C), signal.h(3HEAD)
! illumos April 9, 2016 illumos
--- 113,121 ----
the calling process.
ENODEV Unable to allocate state for the file descriptor.
SEE ALSO
! poll(2), sigwait(2), port_create(3C), sigsetops(3C), sigwaitinfo(3C),
! signal.h(3HEAD), epoll(5)
! illumos May 5, 2016 illumos