diff --git a/core/lib.rs b/core/lib.rs index b203f3e58..f9e8126d3 100644 --- a/core/lib.rs +++ b/core/lib.rs @@ -874,7 +874,7 @@ impl Connection { #[cfg(feature = "fs")] pub fn wal_insert_begin(&self) -> Result<()> { let pager = self.pager.borrow(); - match pager.io.block(|| pager.begin_read_tx())? { + match pager.begin_read_tx()? { result::LimboResult::Busy => return Err(LimboError::Busy), result::LimboResult::Ok => {} } diff --git a/core/schema.rs b/core/schema.rs index e49302a68..0c2399d7e 100644 --- a/core/schema.rs +++ b/core/schema.rs @@ -156,7 +156,7 @@ impl Schema { let mut automatic_indices: HashMap> = HashMap::with_capacity(10); - if matches!(pager.io.block(|| pager.begin_read_tx())?, LimboResult::Busy) { + if matches!(pager.begin_read_tx()?, LimboResult::Busy) { return Err(LimboError::Busy); } diff --git a/core/storage/btree.rs b/core/storage/btree.rs index 5e33ad610..d5a8a97a2 100644 --- a/core/storage/btree.rs +++ b/core/storage/btree.rs @@ -7111,7 +7111,7 @@ mod tests { tracing::info!("seed: {seed}"); for insert_id in 0..inserts { let do_validate = do_validate_btree || (insert_id % VALIDATE_INTERVAL == 0); - run_until_done(|| pager.begin_read_tx(), &pager).unwrap(); + pager.begin_read_tx().unwrap(); run_until_done(|| pager.begin_write_tx(), &pager).unwrap(); let size = size(&mut rng); let key = { @@ -7163,7 +7163,7 @@ mod tests { } } } - run_until_done(|| pager.begin_read_tx(), &pager).unwrap(); + pager.begin_read_tx().unwrap(); // FIXME: add sorted vector instead, should be okay for small amounts of keys for now :P, too lazy to fix right now cursor.move_to_root().unwrap(); let mut valid = true; @@ -7193,7 +7193,7 @@ mod tests { } pager.end_read_tx().unwrap(); } - run_until_done(|| pager.begin_read_tx(), &pager).unwrap(); + pager.begin_read_tx().unwrap(); tracing::info!( "=========== btree ===========\n{}\n\n", format_btree(pager.clone(), root_page, 0) diff --git a/core/storage/pager.rs b/core/storage/pager.rs index 97d7a73e1..3b4d4a06f 100644 --- a/core/storage/pager.rs +++ b/core/storage/pager.rs @@ -735,13 +735,13 @@ impl Pager { #[inline(always)] #[instrument(skip_all, level = Level::DEBUG)] - pub fn begin_read_tx(&self) -> Result> { + pub fn begin_read_tx(&self) -> Result { let (result, changed) = self.wal.borrow_mut().begin_read_tx()?; if changed { // Someone else changed the database -> assume our page cache is invalid (this is default SQLite behavior, we can probably do better with more granular invalidation) self.clear_page_cache(); } - Ok(IOResult::Done(result)) + Ok(result) } #[instrument(skip_all, level = Level::DEBUG)] diff --git a/core/vdbe/execute.rs b/core/vdbe/execute.rs index 1d9dcbcc4..c1e219256 100644 --- a/core/vdbe/execute.rs +++ b/core/vdbe/execute.rs @@ -1961,7 +1961,7 @@ pub fn op_transaction( }; if updated && matches!(current_state, TransactionState::None) { - if let LimboResult::Busy = return_if_io!(pager.begin_read_tx()) { + if let LimboResult::Busy = pager.begin_read_tx()? { return Ok(InsnFunctionStepResult::Busy); } }