Changeset: c3fce99529f1 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/c3fce99529f1 Modified Files: sql/storage/bat/bat_storage.c Branch: Aug2024 Log Message:
Avoid a data race. diffs (35 lines): diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c --- a/sql/storage/bat/bat_storage.c +++ b/sql/storage/bat/bat_storage.c @@ -4618,7 +4618,6 @@ add_offsets(BUN slot, size_t nr, size_t static int claim_segmentsV2(sql_trans *tr, sql_table *t, storage *s, size_t cnt, BUN *offset, BAT **offsets, bool locked) { - int in_transaction = segments_in_transaction(tr, t), ok = LOG_OK; assert(s->segs); ulng oldest = store_oldest(tr->store, NULL); BUN slot = 0; @@ -4626,6 +4625,7 @@ claim_segmentsV2(sql_trans *tr, sql_tabl if (!locked) lock_table(tr->store, t->base.id); + int in_transaction = segments_in_transaction(tr, t), ok = LOG_OK; /* naive vacuum approach, iterator through segments, use deleted segments or create new segment at the end */ for (segment *seg = s->segs->h, *p = NULL; seg && cnt && ok == LOG_OK; p = seg, seg = ATOMIC_PTR_GET(&seg->next)) { if (seg->deleted && seg->ts < oldest && seg->end > seg->start) { /* reuse old deleted or rolled back append */ @@ -4707,7 +4707,6 @@ claim_segments(sql_trans *tr, sql_table { if (cnt > 1 && offsets) return claim_segmentsV2(tr, t, s, cnt, offset, offsets, locked); - int in_transaction = segments_in_transaction(tr, t), ok = LOG_OK; assert(s->segs); ulng oldest = store_oldest(tr->store, NULL); BUN slot = 0; @@ -4715,6 +4714,7 @@ claim_segments(sql_trans *tr, sql_table if (!locked) lock_table(tr->store, t->base.id); + int in_transaction = segments_in_transaction(tr, t), ok = LOG_OK; /* naive vacuum approach, iterator through segments, check for large enough deleted segments * or create new segment at the end */ for (segment *seg = s->segs->h, *p = NULL; seg && ok == LOG_OK; p = seg, seg = ATOMIC_PTR_GET(&seg->next)) { _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org