Use Linux's signalfd() instead of pipe() to deliver signals to the IO manager
|Reported by:||simonmar||Owned by:|
|Type of failure:||None/Unknown||Test Case:|
|Related Tickets:||Differential Rev(s):|
As pointed out to me by dcoutts, Linux has a new API that enables signals and other events to be delivered via a file descriptor, and hence used with select()/poll()/epoll(). The new API went into Linux 2.6.22:
We could use this in GHC's IO manager to avoid the hacky use of pipe() for the same purpose.