Changeset: 8eba0b14271f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/8eba0b14271f
Modified Files:
sql/storage/bat/bat_storage.c
Branch: Mar2025
Log Message:
Use ATOMIC_* macros for all accesses to ATOMIC_TYPE values.
diffs (48 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
@@ -514,7 +514,7 @@ new_segments(sql_trans *tr, size_t cnt)
if (n) {
n->nr_reused = 0;
- n->deleted = 0;
+ ATOMIC_INIT(&n->deleted, 0);
n->h = n->t = new_segment(NULL, tr, cnt);
if (!n->h) {
GDKfree(n);
@@ -3963,7 +3963,7 @@ clear_table(sql_trans *tr, sql_table *t)
}
if (clear) {
d->segs->nr_reused = 0;
- d->segs->deleted = 0;
+ ATOMIC_SET(&d->segs->deleted, 0);
}
return sz;
}
@@ -4704,7 +4704,7 @@ claim_segmentsV2(sql_trans *tr, sql_tabl
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 */
- if (s->segs->deleted)
+ if (ATOMIC_GET(&s->segs->deleted) != 0)
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 */
if ((seg->end - seg->start) >= cnt) {
@@ -4800,7 +4800,7 @@ claim_segments(sql_trans *tr, sql_table
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 */
- if (s->segs->deleted)
+ if (ATOMIC_GET(&s->segs->deleted) != 0)
for (segment *seg = s->segs->h, *p = NULL; seg && ok == LOG_OK; p =
seg, seg = ATOMIC_PTR_GET(&seg->next)) {
if (seg->deleted && seg->ts < oldest && (seg->end-seg->start)
>= cnt) { /* reuse old deleted or rolled back append */
@@ -5122,7 +5122,7 @@ vacuum_tab(sql_trans *tr, sql_table *t,
return res;
}
s->segs->nr_reused = 0;
- s->segs->deleted = 0;
+ ATOMIC_SET(&s->segs->deleted, 0);
return LOG_OK;
}
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]