|
Boost Users : |
Subject: Re: [Boost-users] [Chrono] Negative real time
From: Vicente J. Botet Escriba (vicente.botet_at_[hidden])
Date: 2012-05-23 12:29:15
Le 23/05/12 09:39, Wilfried Kirschenmann a écrit :
> On Tue, May 22, 2012 at 9:41 PM, Vicente J. Botet Escriba
> <vicente.botet_at_[hidden] <mailto:vicente.botet_at_[hidden]>> wrote:
>
> Le 22/05/12 18:55, Wilfried Kirschenmann a écrit :
>> Dear chrono maintainer team,
>>
>>
>> I run boost 1.49 win32 on Windows 7 x64 with Visual studio 2010.
>>
>> Studying the behavior of the timer, I think that the error is one
>> of these :
>> - process_real_cpu_clock::now() only stores the current time in a
>> 32 bit integer instead of a 64 bit integer
>
> I don't know from where are you getting this conclusion.
> process_real_cpu_clock is using boost::int_least64_t, as
> representation.
>
> typedef duration<boost::int_least64_t, nano> nanoseconds;
> // at least 64 bits needed
> class BOOST_CHRONO_DECL process_real_cpu_clock {
> public:
> typedef nanoseconds duration;
> typedef duration::rep rep;
> typedef duration::period period;
> typedef chrono::time_point<process_real_cpu_clock>
> time_point;
> BOOST_STATIC_CONSTEXPR bool is_steady = true;
>
> static BOOST_CHRONO_INLINE time_point now() BOOST_NOEXCEPT;
> #if !defined BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING
> static BOOST_CHRONO_INLINE time_point
> now(system::error_code & ec );
> #endif
>
> };
>
>
> From the fact that it behaves as if there were a 32bit overflow. Which
> is in fact the case : https://svn.boost.org/trac/boost/ticket/6361
> The problem is fixed in 1.50 and I no longer get negative times.
>
Oh my bad, I forget this issue and I was locking on the trunk. Glad to
see that you will get a solution with 1.50 :)
Best,
Vicente
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