From 19513fd9a79a60884b5260e6dec20b21b3d4dd6d Mon Sep 17 00:00:00 2001 From: Pekka Enberg Date: Wed, 17 Sep 2025 14:47:53 +0300 Subject: [PATCH] core/storage: Switch Pager::max_page_count to AtomicU32 --- core/storage/pager.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/core/storage/pager.rs b/core/storage/pager.rs index fd216eaf8..889bae54c 100644 --- a/core/storage/pager.rs +++ b/core/storage/pager.rs @@ -521,7 +521,7 @@ pub struct Pager { reserved_space: Cell>, free_page_state: RefCell, /// Maximum number of pages allowed in the database. Default is 1073741823 (SQLite default). - max_page_count: Cell, + max_page_count: AtomicU32, #[cfg(not(feature = "omit_autovacuum"))] /// State machine for [Pager::ptrmap_get] ptrmap_get_state: RefCell, @@ -624,7 +624,7 @@ impl Pager { reserved_space: Cell::new(None), free_page_state: RefCell::new(FreePageState::Start), allocate_page_state: RwLock::new(AllocatePageState::Start), - max_page_count: Cell::new(DEFAULT_MAX_PAGE_COUNT), + max_page_count: AtomicU32::new(DEFAULT_MAX_PAGE_COUNT), #[cfg(not(feature = "omit_autovacuum"))] ptrmap_get_state: RefCell::new(PtrMapGetState::Start), #[cfg(not(feature = "omit_autovacuum"))] @@ -638,7 +638,7 @@ impl Pager { /// Get the maximum page count for this database pub fn get_max_page_count(&self) -> u32 { - self.max_page_count.get() + self.max_page_count.load(Ordering::SeqCst) } /// Set the maximum page count for this database @@ -650,7 +650,7 @@ impl Pager { // Clamp new_max to be at least the current database size let clamped_max = std::cmp::max(new_max, current_page_count); - self.max_page_count.set(clamped_max); + self.max_page_count.store(clamped_max, Ordering::SeqCst); Ok(IOResult::Done(clamped_max)) }