Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/corefx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLiudmila Molkova <lmolkova@microsoft.com>2017-04-20 20:56:10 +0300
committerLiudmila Molkova <lmolkova@microsoft.com>2017-04-20 20:56:10 +0300
commit95505ca609217aba962bf7547e2857010740fe5d (patch)
treed85e1e2bab13e9f5d14c91e92a7cd67e4a15e1ef /src
parent0bedd4c9b8b8cbbcfbd6cf65ef7a29be9f7fdd88 (diff)
review: initialize start timestamp and time
Diffstat (limited to 'src')
-rw-r--r--src/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.DateTime.corefx.cs4
-rw-r--r--src/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.DateTime.netfx.cs10
-rw-r--r--src/System.Diagnostics.DiagnosticSource/tests/ActivityDateTimeTests.cs2
3 files changed, 13 insertions, 3 deletions
diff --git a/src/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.DateTime.corefx.cs b/src/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.DateTime.corefx.cs
index c485b41b7b..ca167d0be9 100644
--- a/src/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.DateTime.corefx.cs
+++ b/src/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.DateTime.corefx.cs
@@ -6,8 +6,12 @@ namespace System.Diagnostics
{
partial class Activity
{
+ /// <summary>
+ /// Returns high resolution (~1 usec) current UTC DateTime.
+ /// </summary>
private DateTime GetUtcNow()
{
+ // .NET Core CLR gives accurate UtcNow
return DateTime.UtcNow;
}
}
diff --git a/src/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.DateTime.netfx.cs b/src/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.DateTime.netfx.cs
index d7e7ec349e..dade796b38 100644
--- a/src/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.DateTime.netfx.cs
+++ b/src/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.DateTime.netfx.cs
@@ -8,8 +8,14 @@ namespace System.Diagnostics
{
partial class Activity
{
+ /// <summary>
+ /// Returns high resolution (1 DateTime tick) current UTC DateTime.
+ /// </summary>
private DateTime GetUtcNow()
{
+ // DateTime.UtcNow accuracyon .NET Framework is 16ms, this method
+ // uses combination of Stopwatch and DateTime to calculate accurate UtcNow.
+
// Timer ticks need to be converted to DateTime ticks
long dateTimeTicksDiff = (long)((Stopwatch.GetTimestamp() - syncStopwatchTicks) * 10000000L /
(double)Stopwatch.Frequency);
@@ -26,8 +32,8 @@ namespace System.Diagnostics
syncUtcNow = DateTime.UtcNow;
}
- private static DateTime syncUtcNow;
- private static long syncStopwatchTicks;
+ private static DateTime syncUtcNow = DateTime.UtcNow;
+ private static long syncStopwatchTicks = Stopwatch.GetTimestamp();
// sync DateTime and Stopwatch ticks every 2 hours
private static Timer syncTimeUpdater = new Timer(s => { Sync(); }, null, 0, 7200000);
diff --git a/src/System.Diagnostics.DiagnosticSource/tests/ActivityDateTimeTests.cs b/src/System.Diagnostics.DiagnosticSource/tests/ActivityDateTimeTests.cs
index feb17e2f13..7aee8cd0f1 100644
--- a/src/System.Diagnostics.DiagnosticSource/tests/ActivityDateTimeTests.cs
+++ b/src/System.Diagnostics.DiagnosticSource/tests/ActivityDateTimeTests.cs
@@ -13,7 +13,7 @@ namespace System.Diagnostics.Tests
var sw = Stopwatch.StartNew();
activity.Start();
- SpinWait.SpinUntil(() => sw.ElapsedMilliseconds > 1, 3);
+ SpinWait.SpinUntil(() => sw.ElapsedMilliseconds > 1, 2);
activity.Stop();
sw.Stop();