chiark / gitweb /
Make InternalLogicError be Clone, with an Arc
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 15 May 2022 11:04:23 +0000 (12:04 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 15 May 2022 14:19:55 +0000 (15:19 +0100)
shapelib wants this for SubstErrors which ought to be Clone.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/error.rs

index 3b9554eaaa9456a3fbfcf0af393ba2f0a94160f2..c234a991fcacbbbda689f86770055995dea7e34b 100644 (file)
@@ -64,10 +64,10 @@ pub enum InternalError {
 #[error("Unsupported colour spec")]
 pub struct UnsupportedColourSpec;
 
-#[derive(Error)]
+#[derive(Error,Clone)]
 pub struct InternalLogicError {
   desc: Cow<'static, str>,
-  backtrace: parking_lot::Mutex<backtrace::Backtrace>,
+  backtrace: Arc<parking_lot::Mutex<backtrace::Backtrace>>,
 }
 
 pub fn internal_error_bydebug(desc: &dyn Debug) -> IE {
@@ -79,7 +79,7 @@ impl InternalLogicError {
     let backtrace = backtrace::Backtrace::new_unresolved();
     InternalLogicError {
       desc: desc.into(),
-      backtrace: parking_lot::Mutex::new(backtrace),
+      backtrace: Arc::new(parking_lot::Mutex::new(backtrace)),
     }
   }
 }