diff --git a/Cargo.lock b/Cargo.lock index bdf1d92da810..eec4ff76d6e3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5548,7 +5548,6 @@ name = "rsclientcerts" version = "0.1.0" dependencies = [ "byteorder", - "gecko-profiler", "pkcs11-bindings", ] diff --git a/security/manager/ssl/osclientcerts/src/lib.rs b/security/manager/ssl/osclientcerts/src/lib.rs index 4ce5a680878e..6eca2bbdb8b2 100644 --- a/security/manager/ssl/osclientcerts/src/lib.rs +++ b/security/manager/ssl/osclientcerts/src/lib.rs @@ -130,7 +130,7 @@ extern "C" fn C_Initialize(_pInitArgs: CK_VOID_PTR) -> CK_RV { vec![CKM_ECDSA, CKM_RSA_PKCS] }; let mut module_state_guard = try_to_get_module_state_guard!(); - let manager_proxy = match ManagerProxy::new("osclientcerts", Backend {}) { + let manager_proxy = match ManagerProxy::new(Backend {}) { Ok(p) => p, Err(e) => { log_with_thread_id!(error, "C_Initialize: ManagerProxy: {}", e); diff --git a/security/manager/ssl/rsclientcerts/Cargo.toml b/security/manager/ssl/rsclientcerts/Cargo.toml index 8bc60c0abc8c..14a35918b8c8 100644 --- a/security/manager/ssl/rsclientcerts/Cargo.toml +++ b/security/manager/ssl/rsclientcerts/Cargo.toml @@ -7,5 +7,4 @@ license = "MPL-2.0" [dependencies] byteorder = "1.3" -gecko-profiler = { path = "../../../../tools/profiler/rust-api" } pkcs11-bindings = "0.1" diff --git a/security/manager/ssl/rsclientcerts/src/manager.rs b/security/manager/ssl/rsclientcerts/src/manager.rs index 38d2df86462c..c92e4dbd2684 100644 --- a/security/manager/ssl/rsclientcerts/src/manager.rs +++ b/security/manager/ssl/rsclientcerts/src/manager.rs @@ -120,70 +120,71 @@ pub struct ManagerProxy { } impl ManagerProxy { - pub fn new( - name: &'static str, - backend: B, - ) -> Result { + pub fn new(backend: B) -> Result { let (proxy_sender, manager_receiver) = channel(); let (manager_sender, proxy_receiver) = channel(); - let thread_handle = thread::Builder::new().name(name.into()).spawn(move || { - gecko_profiler::register_thread(name); - let mut real_manager = Manager::new(backend); - while let Ok(arguments) = manager_receiver.recv() { - let results = match arguments { - ManagerArguments::OpenSession(slot_type) => { - ManagerReturnValue::OpenSession(real_manager.open_session(slot_type)) + let thread_handle = thread::Builder::new() + .name("osclientcert".into()) + .spawn(move || { + let mut real_manager = Manager::new(backend); + while let Ok(arguments) = manager_receiver.recv() { + let results = match arguments { + ManagerArguments::OpenSession(slot_type) => { + ManagerReturnValue::OpenSession(real_manager.open_session(slot_type)) + } + ManagerArguments::CloseSession(session_handle) => { + ManagerReturnValue::CloseSession( + real_manager.close_session(session_handle), + ) + } + ManagerArguments::CloseAllSessions(slot_type) => { + ManagerReturnValue::CloseAllSessions( + real_manager.close_all_sessions(slot_type), + ) + } + ManagerArguments::StartSearch(session, attrs) => { + ManagerReturnValue::StartSearch( + real_manager.start_search(session, attrs), + ) + } + ManagerArguments::Search(session, max_objects) => { + ManagerReturnValue::Search(real_manager.search(session, max_objects)) + } + ManagerArguments::ClearSearch(session) => { + ManagerReturnValue::ClearSearch(real_manager.clear_search(session)) + } + ManagerArguments::GetAttributes(object_handle, attr_types) => { + ManagerReturnValue::GetAttributes( + real_manager.get_attributes(object_handle, attr_types), + ) + } + ManagerArguments::StartSign(session, key_handle, params) => { + ManagerReturnValue::StartSign( + real_manager.start_sign(session, key_handle, params), + ) + } + ManagerArguments::GetSignatureLength(session, data) => { + ManagerReturnValue::GetSignatureLength( + real_manager.get_signature_length(session, data), + ) + } + ManagerArguments::Sign(session, data) => { + ManagerReturnValue::Sign(real_manager.sign(session, data)) + } + ManagerArguments::Stop => ManagerReturnValue::Stop(Ok(())), + }; + let stop_after_send = matches!(&results, &ManagerReturnValue::Stop(_)); + match manager_sender.send(results) { + Ok(()) => {} + Err(_) => { + break; + } } - ManagerArguments::CloseSession(session_handle) => { - ManagerReturnValue::CloseSession(real_manager.close_session(session_handle)) - } - ManagerArguments::CloseAllSessions(slot_type) => { - ManagerReturnValue::CloseAllSessions( - real_manager.close_all_sessions(slot_type), - ) - } - ManagerArguments::StartSearch(session, attrs) => { - ManagerReturnValue::StartSearch(real_manager.start_search(session, attrs)) - } - ManagerArguments::Search(session, max_objects) => { - ManagerReturnValue::Search(real_manager.search(session, max_objects)) - } - ManagerArguments::ClearSearch(session) => { - ManagerReturnValue::ClearSearch(real_manager.clear_search(session)) - } - ManagerArguments::GetAttributes(object_handle, attr_types) => { - ManagerReturnValue::GetAttributes( - real_manager.get_attributes(object_handle, attr_types), - ) - } - ManagerArguments::StartSign(session, key_handle, params) => { - ManagerReturnValue::StartSign( - real_manager.start_sign(session, key_handle, params), - ) - } - ManagerArguments::GetSignatureLength(session, data) => { - ManagerReturnValue::GetSignatureLength( - real_manager.get_signature_length(session, data), - ) - } - ManagerArguments::Sign(session, data) => { - ManagerReturnValue::Sign(real_manager.sign(session, data)) - } - ManagerArguments::Stop => ManagerReturnValue::Stop(Ok(())), - }; - let stop_after_send = matches!(&results, &ManagerReturnValue::Stop(_)); - match manager_sender.send(results) { - Ok(()) => {} - Err(_) => { + if stop_after_send { break; } } - if stop_after_send { - break; - } - } - gecko_profiler::unregister_thread(); - }); + }); match thread_handle { Ok(thread_handle) => Ok(ManagerProxy { sender: proxy_sender,