Problem with boost threads on hpux

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Problem with boost threads on hpux

Boost - Users mailing list
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


_______________________________________________
Boost-users mailing list
[hidden email]
https://lists.boost.org/mailman/listinfo.cgi/boost-users
Reply | Threaded
Open this post in threaded view
|

Re: Problem with boost threads on hpux

Boost - Users mailing list
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
[hidden email]
https://lists.boost.org/mailman/listinfo.cgi/boost-users
Reply | Threaded
Open this post in threaded view
|

Re: Problem with boost threads on hpux

Boost - Users mailing list
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 <[hidden email]> On Behalf Of Gavin Lambert via Boost-users
Sent: Tuesday, February 19, 2019 9:41 PM
To: [hidden email]
Cc: Gavin Lambert <[hidden email]>
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
[hidden email]
https://lists.boost.org/mailman/listinfo.cgi/boost-users


_______________________________________________
Boost-users mailing list
[hidden email]
https://lists.boost.org/mailman/listinfo.cgi/boost-users