aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/util/thread.rs13
1 files changed, 6 insertions, 7 deletions
diff --git a/components/util/thread.rs b/components/util/thread.rs
index f32e6ccd4f7..9451d0a434f 100644
--- a/components/util/thread.rs
+++ b/components/util/thread.rs
@@ -7,7 +7,7 @@ use opts;
use serde::Serialize;
use std::borrow::ToOwned;
use std::io::{Write, stderr};
-use std::panic::{PanicInfo, take_handler, set_handler};
+use std::panic::{PanicInfo, take_hook, set_hook};
use std::sync::mpsc::Sender;
use std::thread;
use std::thread::Builder;
@@ -23,10 +23,10 @@ pub fn spawn_named<F>(name: String, f: F)
return;
}
- let f_with_handler = move || {
- let hook = take_handler();
+ let f_with_hook = move || {
+ let hook = take_hook();
- let new_handler = move |info: &PanicInfo| {
+ let new_hook = move |info: &PanicInfo| {
let payload = info.payload();
if let Some(s) = payload.downcast_ref::<String>() {
if s.contains("SendError") {
@@ -45,11 +45,11 @@ pub fn spawn_named<F>(name: String, f: F)
}
hook(&info);
};
- set_handler(new_handler);
+ set_hook(Box::new(new_hook));
f();
};
- builder.spawn(f_with_handler).unwrap();
+ builder.spawn(f_with_hook).unwrap();
}
/// An abstraction over `Sender<T>` and `IpcSender<T>`, for use in
@@ -98,4 +98,3 @@ pub fn spawn_named_with_send_on_failure<F, T, S>(name: String,
}
}).unwrap();
}
-