Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Use stronger memory ordering for initialized flag synchronization
Apply code review feedback to use Ordering::AcqRel for the swap operation
and Ordering::Release for the store operation to ensure proper
synchronization across threads when setting the initialized flag.
  • Loading branch information
ever0de committed Nov 22, 2025
commit ece048d0be2079e2f9a808c634f744769dbb1d17
4 changes: 2 additions & 2 deletions crates/stdlib/src/sqlite.rs
Original file line number Diff line number Diff line change
Expand Up @@ -903,7 +903,7 @@ mod _sqlite {
type Args = ConnectArgs;

fn init(zelf: PyRef<Self>, args: Self::Args, vm: &VirtualMachine) -> PyResult<()> {
let was_initialized = Radium::swap(&zelf.initialized, false, Ordering::Relaxed);
let was_initialized = Radium::swap(&zelf.initialized, false, Ordering::AcqRel);

// Reset factories to their defaults, matching CPython's behavior.
zelf.reset_factories(vm);
Expand Down Expand Up @@ -931,7 +931,7 @@ mod _sqlite {

let mut guard = zelf.db.lock();
*guard = Some(db);
Radium::store(&zelf.initialized, true, Ordering::Relaxed);
Radium::store(&zelf.initialized, true, Ordering::Release);
Ok(())
}
}
Expand Down
Loading