
Hi: I am trying to use boost threads with condition variables on hpux with aCC compiler. The compiler has incomplete support of C++11 standard. It does not have <chrono> or <thread> headers. I get the following error message when compiling a program which is using condition variables: "/usr/local/include/boost/thread/pthread/thread_data.hpp", line 344: error #2135: namespace "boost::chrono" has no member "steady_clock" void sleep_until(const chrono::time_point<chrono::steady_clock, Duration>& t) ^ The c++ code is { while (bufferIsEmpty[bufferPairNo]) { boost::unique_lock<boost::mutex> lock (bufferIsEmptyMutex[bufferPairNo]); =>> zb_bufferIsEmptyCondVar[bufferPairNo].wait_for (lock, boost::chrono::microseconds (100)); } } The version of boost I am using is 1.69.0. I build boost with: ./bjam -a -j6 install --build-dir=build address-model=64 variant=release link=static \ threading=multi runtime-link=static \ define=BOOST_THREAD_DONT_USE_CHRONO \ --with-date_time --with-filesystem \ --with-system --with-thread When I look at the boost header file, I see this: boost/thread/pthread/ thread_data.hpp #ifdef BOOST_THREAD_USES_CHRONO template <class Rep, class Period> void sleep_for(const chrono::duration<Rep, Period>& d) { hidden::sleep_for_internal(detail::platform_duration(d)); } template <class Duration> line 344 >> void sleep_until(const chrono::time_point<chrono::steady_clock, Duration>& t) { sleep_for(t - chrono::steady_clock::now()); } It appears that the define=BOOST_THREAD_DONT_USE_CHRONO, had no affect. Have I built this correctly, or is there another problem? I would greatly appreciate any help on this. Best regards, John John Parke Alebra Technologies Inc. PO Box 120390 New Brighton, MN 55112 770-425-1810

On 20/02/2019 12:49, John Parke wrote:
The version of boost I am using is 1.69.0. I build boost with:
./bjam -a -j6 install --build-dir=build address-model=64 variant=release link=static \ threading=multi runtime-link=static \ define=BOOST_THREAD_DONT_USE_CHRONO \ --with-date_time --with-filesystem \ --with-system --with-thread [...] It appears that the define=BOOST_THREAD_DONT_USE_CHRONO, had no affect.
You need to define this when you are building your app/lib (before including any Boost header files). Usually defining these at Boost build time is not necessary, but probably doesn't hurt.

Gavin: Thanks. That worked. I had tried before, but didn't have the define high enough in the code. It appears that adding #define BOOST_THREAD_DONT_USE_CHRONO eliminates wait_for method of condition variable, if I am interpreting the condition_variable_fwd.hpp header correctly. But time_wait is available, which I should be able to use. Thanks again for helping you saved me a lot of headaches. John John Parke Alebra Technologies Inc. PO Box 120390 New Brighton, MN 55112 -----Original Message----- From: Boost-users <boost-users-bounces@lists.boost.org> On Behalf Of Gavin Lambert via Boost-users Sent: Tuesday, February 19, 2019 9:41 PM To: boost-users@lists.boost.org Cc: Gavin Lambert <boost@mirality.co.nz> Subject: Re: [Boost-users] Problem with boost threads on hpux On 20/02/2019 12:49, John Parke wrote:
The version of boost I am using is 1.69.0. I build boost with:
./bjam -a -j6 install --build-dir=build address-model=64 variant=release link=static \ threading=multi runtime-link=static \ define=BOOST_THREAD_DONT_USE_CHRONO \ --with-date_time --with-filesystem \ --with-system --with-thread [...] It appears that the define=BOOST_THREAD_DONT_USE_CHRONO, had no affect.
You need to define this when you are building your app/lib (before including any Boost header files). Usually defining these at Boost build time is not necessary, but probably doesn't hurt. _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org https://lists.boost.org/mailman/listinfo.cgi/boost-users
participants (2)
-
Gavin Lambert
-
John Parke