@@ -131,6 +131,9 @@ private void DoAnalyseReferenceAssembly(PortableExecutableReference r)
131
131
132
132
var skipExtraction = options . Cache && File . Exists ( trapWriter . TrapFile ) ;
133
133
134
+ var currentTaskId = IncrementTaskCount ( ) ;
135
+ ReportProgressTaskStarted ( currentTaskId , assemblyPath ) ;
136
+
134
137
if ( ! skipExtraction )
135
138
{
136
139
/* Note on parallel builds:
@@ -167,7 +170,7 @@ private void DoAnalyseReferenceAssembly(PortableExecutableReference r)
167
170
}
168
171
}
169
172
170
- ReportProgress ( assemblyPath , trapWriter . TrapFile , stopwatch . Elapsed , skipExtraction ? AnalysisAction . UpToDate : AnalysisAction . Extracted ) ;
173
+ ReportProgressTaskDone ( currentTaskId , assemblyPath , trapWriter . TrapFile , stopwatch . Elapsed , skipExtraction ? AnalysisAction . UpToDate : AnalysisAction . Extracted ) ;
171
174
}
172
175
catch ( Exception ex ) // lgtm[cs/catch-of-all-exceptions]
173
176
{
@@ -177,11 +180,13 @@ private void DoAnalyseReferenceAssembly(PortableExecutableReference r)
177
180
178
181
private void DoExtractCIL ( PortableExecutableReference r )
179
182
{
183
+ var currentTaskId = IncrementTaskCount ( ) ;
184
+ ReportProgressTaskStarted ( currentTaskId , r . FilePath ) ;
180
185
var stopwatch = new Stopwatch ( ) ;
181
186
stopwatch . Start ( ) ;
182
187
CIL . Analyser . ExtractCIL ( r . FilePath ! , Logger , options , out var trapFile , out var extracted ) ;
183
188
stopwatch . Stop ( ) ;
184
- ReportProgress ( r . FilePath , trapFile , stopwatch . Elapsed , extracted ? AnalysisAction . Extracted : AnalysisAction . UpToDate ) ;
189
+ ReportProgressTaskDone ( currentTaskId , r . FilePath , trapFile , stopwatch . Elapsed , extracted ? AnalysisAction . Extracted : AnalysisAction . UpToDate ) ;
185
190
}
186
191
187
192
private void DoExtractTree ( SyntaxTree tree )
@@ -201,6 +206,9 @@ private void DoExtractTree(SyntaxTree tree)
201
206
202
207
upToDate = options . Fast && FileIsUpToDate ( sourcePath , trapWriter . TrapFile ) ;
203
208
209
+ var currentTaskId = IncrementTaskCount ( ) ;
210
+ ReportProgressTaskStarted ( currentTaskId , sourcePath ) ;
211
+
204
212
if ( ! upToDate )
205
213
{
206
214
var cx = new Context ( extractor , compilation . Clone ( ) , trapWriter , new SourceScope ( tree ) , addAssemblyTrapPrefix ) ;
@@ -221,7 +229,7 @@ private void DoExtractTree(SyntaxTree tree)
221
229
cx . PopulateAll ( ) ;
222
230
}
223
231
224
- ReportProgress ( sourcePath , trapPath , stopwatch . Elapsed , upToDate ? AnalysisAction . UpToDate : AnalysisAction . Extracted ) ;
232
+ ReportProgressTaskDone ( currentTaskId , sourcePath , trapPath , stopwatch . Elapsed , upToDate ? AnalysisAction . UpToDate : AnalysisAction . Extracted ) ;
225
233
}
226
234
catch ( Exception ex ) // lgtm[cs/catch-of-all-exceptions]
227
235
{
@@ -234,6 +242,13 @@ private void DoAnalyseCompilation()
234
242
try
235
243
{
236
244
var assemblyPath = extractor . OutputPath ;
245
+
246
+
247
+ var stopwatch = new Stopwatch ( ) ;
248
+ stopwatch . Start ( ) ;
249
+ var currentTaskId = IncrementTaskCount ( ) ;
250
+ ReportProgressTaskStarted ( currentTaskId , assemblyPath ) ;
251
+
237
252
var transformedAssemblyPath = PathTransformer . Transform ( assemblyPath ) ;
238
253
var assembly = compilation . Assembly ;
239
254
var trapWriter = transformedAssemblyPath . CreateTrapWriter ( Logger , options . TrapCompression , discardDuplicates : false ) ;
@@ -243,6 +258,8 @@ private void DoAnalyseCompilation()
243
258
compilationEntity = Entities . Compilation . Create ( cx ) ;
244
259
245
260
extractor . CompilationInfos . ForEach ( ci => trapWriter . Writer . compilation_info ( compilationEntity , ci . key , ci . value ) ) ;
261
+
262
+ ReportProgressTaskDone ( currentTaskId , assemblyPath , trapWriter . TrapFile , stopwatch . Elapsed , AnalysisAction . Extracted ) ;
246
263
}
247
264
catch ( Exception ex ) // lgtm[cs/catch-of-all-exceptions]
248
265
{
@@ -279,10 +296,22 @@ private static void AnalyseNamespace(Context cx, INamespaceSymbol ns)
279
296
}
280
297
}
281
298
282
- private void ReportProgress ( string src , string output , TimeSpan time , AnalysisAction action )
299
+ private int IncrementTaskCount ( )
283
300
{
284
301
lock ( progressMutex )
285
- progressMonitor . Analysed ( ++ taskCount , extractionTasks . Count , src , output , time , action ) ;
302
+ {
303
+ return ++ taskCount ;
304
+ }
305
+ }
306
+
307
+ private void ReportProgressTaskStarted ( int currentCount , string src )
308
+ {
309
+ progressMonitor . Started ( currentCount , extractionTasks . Count , src ) ;
310
+ }
311
+
312
+ private void ReportProgressTaskDone ( int currentCount , string src , string output , TimeSpan time , AnalysisAction action )
313
+ {
314
+ progressMonitor . Analysed ( currentCount , extractionTasks . Count , src , output , time , action ) ;
286
315
}
287
316
288
317
/// <summary>
0 commit comments