File tree Expand file tree Collapse file tree 1 file changed +4
-12
lines changed
stdlib/public/Concurrency Expand file tree Collapse file tree 1 file changed +4
-12
lines changed Original file line number Diff line number Diff line change @@ -87,18 +87,10 @@ void swift_get_time(
87
87
*seconds = suspending.tv_sec ;
88
88
*nanoseconds = suspending.tv_nsec ;
89
89
#elif defined(_WIN32)
90
- LARGE_INTEGER freq;
91
- QueryPerformanceFrequency (&freq);
92
- LARGE_INTEGER count;
93
- QueryPerformanceCounter (&count);
94
- *seconds = count.QuadPart / freq.QuadPart ;
95
- if (freq.QuadPart < 1000000000 ) {
96
- *nanoseconds =
97
- ((count.QuadPart % freq.QuadPart ) * 1000000000 ) / freq.QuadPart ;
98
- } else {
99
- *nanoseconds =
100
- (count.QuadPart % freq.QuadPart ) * (1000000000.0 / freq.QuadPart );
101
- }
90
+ ULONGLONG unbiasedTime;
91
+ QueryUnbiasedInterruptTimePrecise (&unbiasedTime);
92
+ *seconds = unbiasedTime / 10000000ULL ; // unit is 100ns
93
+ *nanoseconds = unbiasedTime % 10000000ULL ;
102
94
#else
103
95
#error Missing platform suspending time definition
104
96
#endif
You can’t perform that action at this time.
0 commit comments