diff --git a/Cargo.toml b/Cargo.toml index 5de8931a1..7922bb99d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,6 +21,7 @@ log = "0.4" once_cell = "1.5" opentelemetry-jaeger = "0.11" opentelemetry = "0.12" +parking_lot = "0.11" prost = "0.7" prost-types = "0.7" slotmap = "1.0" diff --git a/src/lib.rs b/src/lib.rs index 284c23417..d872da5fb 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -324,8 +324,6 @@ pub enum CoreError { TokioInitError(std::io::Error), /// Invalid URI: {0:?} InvalidUri(#[from] InvalidUri), - /// A mutex was poisoned: {0:?} - LockPoisoned(String), /// State machines are missing for the workflow with run id {0}! MissingMachines(String), } diff --git a/src/workflow/concurrency_manager.rs b/src/workflow/concurrency_manager.rs index 041afaacb..a356fac83 100644 --- a/src/workflow/concurrency_manager.rs +++ b/src/workflow/concurrency_manager.rs @@ -8,9 +8,9 @@ use crate::{ }; use crossbeam::channel::{bounded, unbounded, Receiver, Select, Sender, TryRecvError}; use dashmap::DashMap; +use parking_lot::Mutex; use std::{ fmt::Debug, - sync::Mutex, thread::{self, JoinHandle}, }; use tracing::Level; @@ -124,7 +124,6 @@ impl WorkflowConcurrencyManager { let _ = self.shutdown_chan.send(true); self.wf_thread .lock() - .expect("Workflow manager thread mutex must be lockable") .take() .unwrap() .join()