Skip to content

Commit c5c9fe8

Browse files
committed
[*] Should not call DateTime.ToLocalTime inner PTP
1 parent 545423c commit c5c9fe8

File tree

6 files changed

+43
-22
lines changed

6 files changed

+43
-22
lines changed

PowerThreadPool/Core/PowerThreadPool.Events.cs

+12-12
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ internal void InvokeWorkEndedEvent(ExecuteResultBase executeResult)
3131
{
3232
executeResult.EndDateTime = DateTime.UtcNow;
3333
Interlocked.Increment(ref _endCount);
34-
Interlocked.Add(ref _executeTime, (long)(executeResult.EndDateTime - executeResult.StartDateTime).TotalMilliseconds);
34+
Interlocked.Add(ref _executeTime, (long)(executeResult.UtcEndDateTime - executeResult.UtcStartDateTime).TotalMilliseconds);
3535
if (WorkEnded != null)
3636
{
3737
WorkEndedEventArgs e = new WorkEndedEventArgs()
@@ -40,9 +40,9 @@ internal void InvokeWorkEndedEvent(ExecuteResultBase executeResult)
4040
Exception = executeResult.Exception,
4141
Result = executeResult.GetResult(),
4242
Succeed = executeResult.Status == Status.Succeed,
43-
QueueDateTime = executeResult.QueueDateTime,
44-
StartDateTime = executeResult.StartDateTime,
45-
EndDateTime = executeResult.EndDateTime,
43+
QueueDateTime = executeResult.UtcQueueDateTime,
44+
StartDateTime = executeResult.UtcStartDateTime,
45+
EndDateTime = executeResult.UtcEndDateTime,
4646
RetryInfo = executeResult.RetryInfo,
4747
};
4848

@@ -63,16 +63,16 @@ internal void InvokeWorkStoppedEvent(ExecuteResultBase executeResult)
6363
{
6464
executeResult.EndDateTime = DateTime.UtcNow;
6565
Interlocked.Increment(ref _endCount);
66-
Interlocked.Add(ref _executeTime, (long)(executeResult.EndDateTime - executeResult.StartDateTime).TotalMilliseconds);
66+
Interlocked.Add(ref _executeTime, (long)(executeResult.UtcEndDateTime - executeResult.UtcStartDateTime).TotalMilliseconds);
6767
if (WorkStopped != null)
6868
{
6969
WorkStoppedEventArgs e = new WorkStoppedEventArgs()
7070
{
7171
ID = executeResult.ID,
7272
ForceStop = executeResult.Status == Status.ForceStopped,
73-
QueueDateTime = executeResult.QueueDateTime,
74-
StartDateTime = executeResult.StartDateTime,
75-
EndDateTime = executeResult.EndDateTime,
73+
QueueDateTime = executeResult.UtcQueueDateTime,
74+
StartDateTime = executeResult.UtcStartDateTime,
75+
EndDateTime = executeResult.UtcEndDateTime,
7676
};
7777
SafeInvoke(WorkStopped, e, ErrorFrom.WorkStopped, executeResult);
7878
}
@@ -113,15 +113,15 @@ internal void InvokeWorkCanceledEvent(ExecuteResultBase executeResult)
113113
{
114114
executeResult.EndDateTime = DateTime.UtcNow;
115115
Interlocked.Increment(ref _endCount);
116-
Interlocked.Add(ref _executeTime, (long)(executeResult.EndDateTime - executeResult.StartDateTime).TotalMilliseconds);
116+
Interlocked.Add(ref _executeTime, (long)(executeResult.UtcEndDateTime - executeResult.UtcStartDateTime).TotalMilliseconds);
117117
if (WorkCanceled != null)
118118
{
119119
WorkCanceledEventArgs e = new WorkCanceledEventArgs()
120120
{
121121
ID = executeResult.ID,
122-
QueueDateTime = executeResult.QueueDateTime,
123-
StartDateTime = executeResult.StartDateTime,
124-
EndDateTime = executeResult.EndDateTime,
122+
QueueDateTime = executeResult.UtcQueueDateTime,
123+
StartDateTime = executeResult.UtcStartDateTime,
124+
EndDateTime = executeResult.UtcEndDateTime,
125125
};
126126
SafeInvoke(WorkCanceled, e, ErrorFrom.WorkCanceled, executeResult);
127127
}

PowerThreadPool/EventArguments/ErrorOccurredEventArgs.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@ public ErrorOccurredEventArgs(Exception exception, ErrorFrom errorFrom, ExecuteR
4141
if (executeResult != null)
4242
{
4343
ID = executeResult.ID;
44-
QueueDateTime = executeResult.QueueDateTime;
45-
StartDateTime = executeResult.StartDateTime;
46-
EndDateTime = executeResult.EndDateTime;
44+
QueueDateTime = executeResult.UtcQueueDateTime;
45+
StartDateTime = executeResult.UtcStartDateTime;
46+
EndDateTime = executeResult.UtcEndDateTime;
4747
}
4848
Exception = exception;
4949
ErrorFrom = errorFrom;

PowerThreadPool/EventArguments/WorkEventArgsBase.cs

+21-6
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,34 @@ public WorkEventArgsBase() { }
1111
/// </summary>
1212
public string ID { get; internal set; }
1313

14+
private DateTime _queueDateTime;
1415
/// <summary>
15-
/// queue datetime.
16+
/// Queue datetime.
1617
/// </summary>
17-
public DateTime QueueDateTime { get; internal set; }
18+
public DateTime QueueDateTime
19+
{
20+
get => _queueDateTime.ToLocalTime();
21+
internal set => _queueDateTime = value;
22+
}
1823

24+
private DateTime _startDateTime;
1925
/// <summary>
20-
/// start datetime.
26+
/// Start datetime.
2127
/// </summary>
22-
public DateTime StartDateTime { get; internal set; }
28+
public DateTime StartDateTime
29+
{
30+
get => _startDateTime.ToLocalTime();
31+
internal set => _startDateTime = value;
32+
}
2333

34+
private DateTime _endDateTime;
2435
/// <summary>
25-
/// callback datetime.
36+
/// End datetime.
2637
/// </summary>
27-
public DateTime EndDateTime { get; internal set; }
38+
public DateTime EndDateTime
39+
{
40+
get => _endDateTime.ToLocalTime();
41+
internal set => _endDateTime = value;
42+
}
2843
}
2944
}

PowerThreadPool/Results/ExecuteResult.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ internal override ExecuteResult<TRes> ToTypedResult<TRes>()
5151
Exception = Exception,
5252
Result = (TRes)(object)Result,
5353
ID = ID,
54-
QueueDateTime = QueueDateTime
54+
QueueDateTime = UtcQueueDateTime
5555
};
5656
}
5757
return result;

PowerThreadPool/Results/ExecuteResultBase.cs

+3
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public DateTime QueueDateTime
3131
get => _queueDateTime.ToLocalTime();
3232
internal set => _queueDateTime = value;
3333
}
34+
internal DateTime UtcQueueDateTime => _queueDateTime;
3435

3536
private DateTime _startDateTime;
3637
/// <summary>
@@ -41,6 +42,7 @@ public DateTime StartDateTime
4142
get => _startDateTime.ToLocalTime();
4243
internal set => _startDateTime = value;
4344
}
45+
internal DateTime UtcStartDateTime => _startDateTime;
4446

4547
private DateTime _endDateTime;
4648
/// <summary>
@@ -51,6 +53,7 @@ public DateTime EndDateTime
5153
get => _endDateTime.ToLocalTime();
5254
internal set => _endDateTime = value;
5355
}
56+
internal DateTime UtcEndDateTime => _endDateTime;
5457

5558
/// <summary>
5659
/// Retry information.

PowerThreadPool/Works/WorkBase.cs

+3
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ internal bool IsPausing
3333
internal bool ShouldStop { get; set; }
3434
internal bool DependencyFailed { get; set; }
3535
internal ManualResetEvent PauseSignal { get; set; }
36+
/// <summary>
37+
/// Queue datetime (UTC).
38+
/// </summary>
3639
internal DateTime QueueDateTime { get; set; }
3740
internal abstract object Execute();
3841
internal abstract bool Stop(bool forceStop);

0 commit comments

Comments
 (0)