diff options
author | Kornel <kornel@geekhood.net> | 2019-08-05 02:41:39 +0100 |
---|---|---|
committer | Kornel <kornel@geekhood.net> | 2019-08-05 02:41:39 +0100 |
commit | 53e49237d4a8f0be10abf110c26bcc1e7f91216e (patch) | |
tree | c7eabefb6e444bafc7a608ea15e45671274983c5 /crate_db/src/lib_crate_db.rs | |
parent | 50ad7d3f7dd16412a242221b237242a0143b08d3 (diff) |
Workaround for sqlite lockups
Diffstat (limited to 'crate_db/src/lib_crate_db.rs')
-rw-r--r-- | crate_db/src/lib_crate_db.rs | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/crate_db/src/lib_crate_db.rs b/crate_db/src/lib_crate_db.rs index 4df9b6c..bbc6c93 100644 --- a/crate_db/src/lib_crate_db.rs +++ b/crate_db/src/lib_crate_db.rs @@ -87,7 +87,10 @@ impl CrateDb { #[inline] fn with_connection<F, T>(&self, context: &'static str, cb: F) -> FResult<T> where F: FnOnce(&mut Connection) -> FResult<T> { - let conn = self.conn.get_or(|| Box::new(self.connect().map(RefCell::new))); + let conn = self.conn.get_or(|| Box::new(self.connect().map(|conn| { + let _ = conn.busy_timeout(std::time::Duration::from_secs(3)); + RefCell::new(conn) + }))); match conn { Ok(conn) => Ok(cb(&mut *conn.borrow_mut()).context(context)?), Err(err) => bail!("{} (in {})", err, context), |