Merge pull request #303 from jgallagher/edelangh-flush_prepared_cached

Added drop for Connection to prevent fd leak
This commit is contained in:
John Gallagher 2017-11-13 08:23:40 -07:00 committed by GitHub
commit e4b68fe0aa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -185,6 +185,12 @@ pub struct Connection {
unsafe impl Send for Connection {} unsafe impl Send for Connection {}
impl Drop for Connection {
fn drop(&mut self) {
self.flush_prepared_statement_cache();
}
}
impl Connection { impl Connection {
/// Open a new connection to a SQLite database. /// Open a new connection to a SQLite database.
/// ///
@ -868,7 +874,15 @@ impl InnerConnection {
impl Drop for InnerConnection { impl Drop for InnerConnection {
#[allow(unused_must_use)] #[allow(unused_must_use)]
fn drop(&mut self) { fn drop(&mut self) {
self.close(); use std::thread::panicking;
if let Err(e) = self.close() {
if panicking() {
eprintln!("Error while closing SQLite connection: {:?}", e);
} else {
panic!("Error while closing SQLite connection: {:?}", e);
}
}
} }
} }