File tree Expand file tree Collapse file tree 1 file changed +17
-6
lines changed
mithril-aggregator/src/services Expand file tree Collapse file tree 1 file changed +17
-6
lines changed Original file line number Diff line number Diff line change @@ -174,20 +174,31 @@ impl ProverService for MithrilProverService {
174
174
. block_range_root_retriever
175
175
. compute_merkle_map_from_block_range_roots ( up_to)
176
176
. await ?;
177
- let discriminant_new = self . mk_map_pool . discriminant ( ) ? + 1 ;
178
- self . mk_map_pool . set_discriminant ( discriminant_new) ?;
179
- self . mk_map_pool . clear ( ) ;
180
- ( 1 ..=pool_size)
177
+ let mk_maps_new = ( 1 ..=pool_size)
181
178
. into_par_iter ( )
182
179
. map ( |i| {
183
180
debug ! (
184
181
self . logger,
185
182
"Prover is computing the Merkle map pool resource {i}/{pool_size}"
186
183
) ;
184
+ mk_map_cache. clone ( )
185
+ } )
186
+ . collect :: < Vec < MKMap < _ , _ > > > ( ) ;
187
+ debug ! ( self . logger, "Prover is draining the Merkle map pool" ) ;
188
+ let discriminant_new = self . mk_map_pool . discriminant ( ) ? + 1 ;
189
+ self . mk_map_pool . set_discriminant ( discriminant_new) ?;
190
+ self . mk_map_pool . clear ( ) ;
191
+ debug ! (
192
+ self . logger,
193
+ "Prover is giving back new resources to the Merkle map pool"
194
+ ) ;
195
+ mk_maps_new
196
+ . into_iter ( )
197
+ . map ( |mk_map| {
187
198
self . mk_map_pool
188
- . give_back_resource ( mk_map_cache . clone ( ) , discriminant_new)
199
+ . give_back_resource ( mk_map , discriminant_new)
189
200
} )
190
- . collect :: < StdResult < ( ) > > ( ) ?;
201
+ . collect :: < StdResult < Vec < _ > > > ( ) ?;
191
202
info ! (
192
203
self . logger,
193
204
"Prover completed computing the Merkle map pool resource of size {pool_size}"
You can’t perform that action at this time.
0 commit comments