diff --git a/services/backup/blob_client/src/get_client.rs b/services/backup/blob_client/src/get_client.rs --- a/services/backup/blob_client/src/get_client.rs +++ b/services/backup/blob_client/src/get_client.rs @@ -9,12 +9,12 @@ use crate::tools::{ c_char_pointer_to_string, check_error, report_error, string_to_c_char_pointer, }; +use crate::RUNTIME; use lazy_static::lazy_static; use libc; use libc::c_char; use std::collections::HashMap; use std::sync::Mutex; -use tokio::runtime::Runtime; use tokio::sync::mpsc; use tokio::task::JoinHandle; @@ -28,7 +28,6 @@ // if every client is able to allocate up to 4MB data at a time static ref CLIENTS: Mutex> = Mutex::new(HashMap::new()); - static ref RUNTIME: Runtime = Runtime::new().unwrap(); static ref ERROR_MESSAGES: Mutex> = Mutex::new(Vec::new()); } diff --git a/services/backup/blob_client/src/lib.rs b/services/backup/blob_client/src/lib.rs --- a/services/backup/blob_client/src/lib.rs +++ b/services/backup/blob_client/src/lib.rs @@ -3,6 +3,9 @@ mod put_client; mod tools; +use lazy_static::lazy_static; +use tokio::runtime; + use put_client::{ put_client_blocking_read_cxx, put_client_initialize_cxx, put_client_terminate_cxx, put_client_write_cxx, @@ -12,6 +15,12 @@ get_client_blocking_read_cxx, get_client_initialize_cxx, get_client_terminate_cxx, }; + +lazy_static! { + static ref RUNTIME: runtime::Runtime = runtime::Runtime::new() + .expect("Unable to create tokio runtime"); +} + #[cxx::bridge] mod ffi { extern "Rust" { diff --git a/services/backup/blob_client/src/put_client.rs b/services/backup/blob_client/src/put_client.rs --- a/services/backup/blob_client/src/put_client.rs +++ b/services/backup/blob_client/src/put_client.rs @@ -11,13 +11,13 @@ use crate::tools::{ c_char_pointer_to_string, check_error, report_error, string_to_c_char_pointer, }; +use crate::RUNTIME; use lazy_static::lazy_static; use libc; use libc::c_char; use std::collections::HashMap; use std::ffi::CStr; use std::sync::Mutex; -use tokio::runtime::Runtime; use tokio::sync::mpsc; use tokio::task::JoinHandle; @@ -39,7 +39,6 @@ // if every client is able to allocate up to 4MB data at a time static ref CLIENTS: Mutex> = Mutex::new(HashMap::new()); - static ref RUNTIME: Runtime = Runtime::new().unwrap(); static ref ERROR_MESSAGES: Mutex> = Mutex::new(Vec::new()); } @@ -133,7 +132,7 @@ Ok(maybe_response_message) => { let mut result = false; if let Some(response_message) = maybe_response_message { - // warning: this will produce an error if there's more unread + // warning: this will produce an error if there's more unread // responses than MPSC_CHANNEL_BUFFER_CAPACITY // you should then use put_client_blocking_read_cxx in order // to dequeue the responses in c++ and make room for more