Boost logo

Boost Users :

Subject: [Boost-users] [asio] fails to compile on HP-UX aCC 11.23 due to ::pselect
From: Avi Bahra (avibahra_at_[hidden])
Date: 2009-09-10 04:08:55


Boost 1.39/1.40 asio will not compile with acc A.06.20 on HPUX 11.23

: I have following error:
"/scratch/ma/ma0/hpia64/boost/boost_1_39_0/boost/asio/detail/socket_ops.hpp",
line 643: error #2282: the global scope has no "pselect"
    return error_wrapper(::pselect(nfds, readfds,

The offending code in socket_ops.hpp is :

inline int select(int nfds, fd_set* readfds, fd_set* writefds,
    fd_set* exceptfds, timeval* timeout, boost::system::error_code& ec)
{
   ...........
#if defined(__hpux) && defined(__HP_aCC)
  timespec ts;
  ts.tv_sec = timeout ? timeout->tv_sec : 0;
  ts.tv_nsec = timeout ? timeout->tv_usec * 1000 : 0;
  return error_wrapper(::pselect(nfds, readfds,
        writefds, exceptfds, timeout ? &ts : 0, 0), ec);
#else
  int result = error_wrapper(::select(nfds, readfds,
        writefds, exceptfds, timeout), ec);
  if (result >= 0)
    clear_error(ec);
  return result;
#endif
}

If I comment out the #ifdef with pselect in it, then everything appears to
be ok.
>From googling around it appears that pselect was only valid for certain OS
versions,
however #if can not detect this.

Has anyone found a more reliable workaround ?

  Best regards,
Ta,
   Avi



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net