Skip to content

Commit 1b75d0e

Browse files
hack
1 parent 6be7f17 commit 1b75d0e

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

src/funkier/fd_funkier_rec.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,12 +246,15 @@ fd_funkier_rec_publish( fd_funkier_rec_prepare_t * prepare ) {
246246
if( FD_ATOMIC_CAS( rec_tail_idx, rec_prev_idx, rec_idx ) == rec_prev_idx ) break;
247247
FD_COMPILER_MFENCE(); /* TODO: maybe not necessary */
248248
}
249+
250+
fd_funkier_rec_pool_lock( &rec_pool, 1 );
249251
rec->prev_idx = rec_prev_idx;
250252
if( fd_funkier_rec_idx_is_null( rec_prev_idx ) ) {
251253
*rec_head_idx = rec_idx;
252254
} else {
253255
rec_pool.ele[ rec_prev_idx ].next_idx = rec_idx;
254256
}
257+
fd_funkier_rec_pool_unlock( &rec_pool );
255258

256259
if( fd_funkier_rec_map_insert( &rec_map, rec, FD_MAP_FLAG_BLOCKING ) ) {
257260
FD_LOG_CRIT(( "fd_funkier_rec_map_insert failed" ));
@@ -336,6 +339,7 @@ fd_funkier_rec_hard_remove( fd_funkier_t * funk,
336339
break;
337340
}
338341

342+
fd_funkier_rec_pool_lock( &rec_pool, 1 );
339343
ulong prev_idx = rec->prev_idx;
340344
ulong next_idx = rec->next_idx;
341345
if( txn == NULL ) {
@@ -349,6 +353,7 @@ fd_funkier_rec_hard_remove( fd_funkier_t * funk,
349353
if( fd_funkier_rec_idx_is_null( next_idx ) ) txn->rec_tail_idx = prev_idx;
350354
else rec_pool.ele[ next_idx ].prev_idx = prev_idx;
351355
}
356+
fd_funkier_rec_pool_unlock( &rec_pool );
352357

353358
fd_funkier_val_flush( rec, alloc, wksp );
354359
fd_funkier_rec_pool_release( &rec_pool, rec, 1 );

0 commit comments

Comments
 (0)