@@ -32,7 +32,15 @@ public SyncWorkflowRunner(IWorkflowHost host, IWorkflowExecutor executor, IDistr
32
32
_dateTimeProvider = dateTimeProvider ;
33
33
}
34
34
35
- public async Task < WorkflowInstance > RunWorkflowSync < TData > ( string workflowId , int version , TData data , string reference , TimeSpan timeOut , bool persistSate = true )
35
+ public Task < WorkflowInstance > RunWorkflowSync < TData > ( string workflowId , int version , TData data ,
36
+ string reference , TimeSpan timeOut , bool persistSate = true )
37
+ where TData : new ( )
38
+ {
39
+ return RunWorkflowSync ( workflowId , version , data , reference , new CancellationTokenSource ( timeOut ) . Token ,
40
+ persistSate ) ;
41
+ }
42
+
43
+ public async Task < WorkflowInstance > RunWorkflowSync < TData > ( string workflowId , int version , TData data , string reference , CancellationToken token , bool persistSate = true )
36
44
where TData : new ( )
37
45
{
38
46
var def = _registry . GetDefinition ( workflowId , version ) ;
@@ -63,8 +71,6 @@ public async Task<WorkflowInstance> RunWorkflowSync<TData>(string workflowId, in
63
71
64
72
wf . ExecutionPointers . Add ( _pointerFactory . BuildGenesisPointer ( def ) ) ;
65
73
66
- var stopWatch = new Stopwatch ( ) ;
67
-
68
74
var id = Guid . NewGuid ( ) . ToString ( ) ;
69
75
70
76
if ( persistSate )
@@ -81,8 +87,7 @@ public async Task<WorkflowInstance> RunWorkflowSync<TData>(string workflowId, in
81
87
82
88
try
83
89
{
84
- stopWatch . Start ( ) ;
85
- while ( ( wf . Status == WorkflowStatus . Runnable ) && ( timeOut . TotalMilliseconds > stopWatch . ElapsedMilliseconds ) )
90
+ while ( ( wf . Status == WorkflowStatus . Runnable ) && ! token . IsCancellationRequested )
86
91
{
87
92
await _executor . Execute ( wf ) ;
88
93
if ( persistSate )
@@ -91,7 +96,6 @@ public async Task<WorkflowInstance> RunWorkflowSync<TData>(string workflowId, in
91
96
}
92
97
finally
93
98
{
94
- stopWatch . Stop ( ) ;
95
99
await _lockService . ReleaseLock ( id ) ;
96
100
}
97
101
0 commit comments