Boost logo

Boost :

From: Julien Delacroix (jdelacroix_at_[hidden])
Date: 2006-07-27 05:17:23


Here is the code that handle thread support in
boost/config/platform/hpux.hpp :

#if defined(__GNUC__)
# if (__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 3))
      // GNU C on HP-UX does not support threads (checked up to gcc 3.3)
# define BOOST_DISABLE_THREADS
# elif !defined(BOOST_DISABLE_THREADS)
      // threads supported from gcc-3.3 onwards:
# define BOOST_HAS_THREADS
# define BOOST_HAS_PTHREADS
# endif
#endif

This code does not set BOOST_HAS_THREADS and BOOST_HAS_PTHREADS when
compiling with aCC on HP-UX.
This cause the boost::shared_ptr to be unsafe in a multithreaded
environment .
We fixed this problem by adding the following lines in user.hpp :

// Enable threading support with aCC !!
#ifdef _AMD_THREADS_
# ifdef _AMD_UNIX_HPUX_
# define BOOST_HAS_THREADS
# define BOOST_HAS_PTHREADS
# endif
#endif

But I suggest that in future release you use the following code in
boost/config/platform/hpux.hpp

#if defined(__GNUC__)
# if (__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 3))
      // GNU C on HP-UX does not support threads (checked up to gcc 3.3)
# define BOOST_DISABLE_THREADS
# endif
#endif

#if !defined(BOOST_DISABLE_THREADS)
     // threads supported
# define BOOST_HAS_THREADS
# define BOOST_HAS_PTHREADS
# endif

Maybe it will be necessary to check aCC version and set
BOOST_DISABLE_THREADS for old aCC version that do not have thread
suport...

Regards

Julien


Boost list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk