$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r62555 - trunk/libs/thread/src/win32
From: anthony_at_[hidden]
Date: 2010-06-08 04:40:48
Author: anthonyw
Date: 2010-06-08 04:40:46 EDT (Tue, 08 Jun 2010)
New Revision: 62555
URL: http://svn.boost.org/trac/boost/changeset/62555
Log:
Updated get_due_time to handle the case where a "tick" is less than
100ns, trac issue #2447
Text files modified: 
   trunk/libs/thread/src/win32/thread.cpp |    16 +++++++++++++++-                        
   1 files changed, 15 insertions(+), 1 deletions(-)
Modified: trunk/libs/thread/src/win32/thread.cpp
==============================================================================
--- trunk/libs/thread/src/win32/thread.cpp	(original)
+++ trunk/libs/thread/src/win32/thread.cpp	2010-06-08 04:40:46 EDT (Tue, 08 Jun 2010)
@@ -356,7 +356,21 @@
                     else
                     {
                         long const hundred_nanoseconds_in_one_second=10000000;
-                        due_time.QuadPart+=target_time.abs_time.time_of_day().fractional_seconds()*(hundred_nanoseconds_in_one_second/target_time.abs_time.time_of_day().ticks_per_second());
+                        long const ticks_per_second=target_time.abs_time.time_of_day().ticks_per_second();
+                        if(ticks_per_second>hundred_nanoseconds_in_one_second)
+                        {
+                            long const ticks_per_hundred_nanoseconds=
+                                ticks_per_second/hundred_nanoseconds_in_one_second;
+                            due_time.QuadPart+=
+                                target_time.abs_time.time_of_day().fractional_seconds()/
+                                ticks_per_hundred_nanoseconds;
+                        }
+                        else
+                        {
+                            due_time.QuadPart+=
+                                target_time.abs_time.time_of_day().fractional_seconds()*
+                                (hundred_nanoseconds_in_one_second/ticks_per_second);
+                        }
                     }
                 }
                 return due_time;