@@ -22,7 +22,9 @@ use crate::{
22
22
observers:: { MapObserver , ObserversTuple , UsesObserver } ,
23
23
schedulers:: powersched:: SchedulerMetadata ,
24
24
stages:: Stage ,
25
- state:: { HasClientPerfMonitor , HasCorpus , HasMetadata , HasNamedMetadata , UsesState } ,
25
+ state:: {
26
+ HasClientPerfMonitor , HasCorpus , HasExecutions , HasMetadata , HasNamedMetadata , UsesState ,
27
+ } ,
26
28
Error ,
27
29
} ;
28
30
90
92
O : MapObserver ,
91
93
for < ' de > <O as MapObserver >:: Entry : Serialize + Deserialize < ' de > + ' static ,
92
94
OT : ObserversTuple < E :: State > ,
93
- E :: State : HasCorpus + HasMetadata + HasClientPerfMonitor + HasNamedMetadata ,
95
+ E :: State : HasCorpus + HasMetadata + HasClientPerfMonitor + HasNamedMetadata + HasExecutions ,
94
96
Z : Evaluator < E , EM , State = E :: State > ,
95
97
{
96
98
#[ inline]
@@ -220,7 +222,8 @@ where
220
222
i += 1 ;
221
223
}
222
224
223
- if !unstable_entries. is_empty ( ) {
225
+ let unstable_found = !unstable_entries. is_empty ( ) ;
226
+ if unstable_found {
224
227
// If we see new stable entries executing this new corpus entries, then merge with the existing one
225
228
if state. has_metadata :: < UnstableEntriesMetadata > ( ) {
226
229
let existing = state
@@ -293,18 +296,25 @@ where
293
296
data. set_handicap ( handicap) ;
294
297
}
295
298
299
+ * state. executions_mut ( ) += i;
300
+
296
301
// Send the stability event to the broker
297
- if let Some ( meta) = state. metadata_map ( ) . get :: < UnstableEntriesMetadata > ( ) {
298
- let unstable_entries = meta. unstable_entries ( ) . len ( ) ;
299
- let map_len = meta. map_len ( ) ;
300
- mgr. fire (
301
- state,
302
- Event :: UpdateUserStats {
303
- name : "stability" . to_string ( ) ,
304
- value : UserStats :: Ratio ( ( map_len - unstable_entries) as u64 , map_len as u64 ) ,
305
- phantom : PhantomData ,
306
- } ,
307
- ) ?;
302
+ if unstable_found {
303
+ if let Some ( meta) = state. metadata_map ( ) . get :: < UnstableEntriesMetadata > ( ) {
304
+ let unstable_entries = meta. unstable_entries ( ) . len ( ) ;
305
+ let map_len = meta. map_len ( ) ;
306
+ mgr. fire (
307
+ state,
308
+ Event :: UpdateUserStats {
309
+ name : "stability" . to_string ( ) ,
310
+ value : UserStats :: Ratio (
311
+ ( map_len - unstable_entries) as u64 ,
312
+ map_len as u64 ,
313
+ ) ,
314
+ phantom : PhantomData ,
315
+ } ,
316
+ ) ?;
317
+ }
308
318
}
309
319
310
320
Ok ( ( ) )
0 commit comments