diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-07-24 14:28:01 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-07-24 15:05:53 +0000 |
| commit | f2d607d2575001eb0415caa005707f7576b40242 (patch) | |
| tree | 836a79081d282f23e4e11800a253b0dadfd11360 | |
| parent | 0f8c5da08e5054558cd853c28bad995a4a91cfc9 (diff) | |
| download | mullvadvpn-f2d607d2575001eb0415caa005707f7576b40242.tar.xz mullvadvpn-f2d607d2575001eb0415caa005707f7576b40242.zip | |
Only load classes once
| -rw-r--r-- | mullvad-jni/src/lib.rs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/mullvad-jni/src/lib.rs b/mullvad-jni/src/lib.rs index 3feb157745..284bea94d6 100644 --- a/mullvad-jni/src/lib.rs +++ b/mullvad-jni/src/lib.rs @@ -23,7 +23,7 @@ use parking_lot::RwLock; use std::{ collections::HashMap, path::{Path, PathBuf}, - sync::mpsc, + sync::{mpsc, Once}, thread, }; use talpid_types::ErrorExt; @@ -76,6 +76,8 @@ lazy_static! { RwLock::new(HashMap::with_capacity(CLASSES_TO_LOAD.len())); } +static LOAD_CLASSES: Once = Once::new(); + #[derive(Debug, err_derive::Error)] pub enum Error { #[error(display = "Failed to create VpnService tunnel provider")] @@ -106,7 +108,7 @@ pub extern "system" fn Java_net_mullvad_mullvadvpn_MullvadDaemon_initialize( ) { match *LOG_INIT_RESULT { Ok(ref log_dir) => { - load_classes(&env); + LOAD_CLASSES.call_once(|| load_classes(&env)); if let Err(error) = initialize(&env, &this, &vpnService, log_dir.clone()) { log::error!("{}", error.display_chain()); |
