On Fri, Aug 22, 2014 at 09:34:42AM +0200, Andres Freund wrote:
> On 2014-08-22 01:36:37 -0400, Noah Misch wrote:
> > On Thu, Aug 21, 2014 at 01:33:38AM +0200, Andres Freund wrote:
> > > On 2014-07-25 18:29:53 -0400, Tom Lane wrote:
> > > > > * QNX lacks sigaction SA_RESTART: I modified "src/include/port.h" to define macros to retry system
callsupon EINTR (open,read,write,...) when compiled on QNX
> > > >
> > > > That's pretty scary too. For one thing, such macros would affect every
> > > > call site whether it's running with SA_RESTART or not. Do you really
> > > > need it? It looks to me like we just turn off HAVE_POSIX_SIGNALS if
> > > > you don't have SA_RESTART. Maybe that code has bit-rotted by now, but
> > > > it did work at one time.
> > >
> > > I have pretty much no trust that we're maintaining
> > > !HAVE_POSIX_SIGNAL. And none that we have that capability of doing so. I
> > > seriously doubt there's any !HAVE_POSIX_SIGNAL animals and
> > > 873ab97219caabeb2f7b390268a4fe01e2b7518c makes it pretty darn unlikely
> > > that we have much chance of finding such mistakes during development.
> >
> > I bet it's fine for its intended target, namely BSD-style signal() in which
> > SA_RESTART-like behavior is implicit. See the src/port/pqsignal.c header
> > comment. PostgreSQL has no support for V7-style/QNX-style signal().
>
> That might be true - although I'm not sure it actually still works - but
> my point is that I can't see Tom's suggestion on relying on
> !HAVE_POSIX_SIGNALS for QNX work out.
True.