From 3e6a7deeaa1509447cf5d1d65fd6463eb8c4a3ec Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Mon, 1 Apr 2019 12:02:46 +0200 Subject: [PATCH] src/api2/admin/datastore.rs: start GC in a separate thread --- src/api2/admin/datastore.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/api2/admin/datastore.rs b/src/api2/admin/datastore.rs index 5cf7f159..98e4f509 100644 --- a/src/api2/admin/datastore.rs +++ b/src/api2/admin/datastore.rs @@ -288,13 +288,17 @@ fn start_garbage_collection( _rpcenv: &mut RpcEnvironment, ) -> Result { - let store = param["store"].as_str().unwrap(); + let store = param["store"].as_str().unwrap().to_string(); - let datastore = DataStore::lookup_datastore(store)?; + let datastore = DataStore::lookup_datastore(&store)?; println!("Starting garbage collection on store {}", store); - datastore.garbage_collection()?; + std::thread::spawn(move || { + if let Err(err) = datastore.garbage_collection() { + println!("Garbage collection error on store {} - {}", store, err); + } + }); Ok(json!(null)) }