From 8359c01b7643112052bf5afca2918fa36a05746d Mon Sep 17 00:00:00 2001 From: Ryan Leckey Date: Wed, 10 Jun 2020 01:02:41 -0700 Subject: [PATCH] fix(sqlite): set a busy timeout to handle SQLITE_BUSY --- sqlx-core/src/sqlite/connection/establish.rs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/sqlx-core/src/sqlite/connection/establish.rs b/sqlx-core/src/sqlite/connection/establish.rs index 457dfc4c2..dbebd1652 100644 --- a/sqlx-core/src/sqlite/connection/establish.rs +++ b/sqlx-core/src/sqlite/connection/establish.rs @@ -3,8 +3,9 @@ use std::ptr::{null, null_mut}; use hashbrown::HashMap; use libsqlite3_sys::{ - sqlite3_extended_result_codes, sqlite3_open_v2, SQLITE_OK, SQLITE_OPEN_CREATE, - SQLITE_OPEN_MEMORY, SQLITE_OPEN_NOMUTEX, SQLITE_OPEN_PRIVATECACHE, SQLITE_OPEN_READWRITE, + sqlite3_busy_timeout, sqlite3_extended_result_codes, sqlite3_open_v2, SQLITE_OK, + SQLITE_OPEN_CREATE, SQLITE_OPEN_MEMORY, SQLITE_OPEN_NOMUTEX, SQLITE_OPEN_PRIVATECACHE, + SQLITE_OPEN_READWRITE, }; use sqlx_rt::blocking; @@ -41,7 +42,7 @@ pub(super) async fn establish(options: &SqliteConnectOptions) -> Result - let status = unsafe { + let mut status = unsafe { sqlite3_open_v2( filename.as_bytes().as_ptr() as *const _, &mut handle, @@ -56,6 +57,7 @@ pub(super) async fn establish(options: &SqliteConnectOptions) -> Result Result