Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Skip printing the backtrace for RecvError/SendError #10329

Merged
merged 3 commits into from Apr 5, 2016
Merged
Changes from 1 commit
Commits
File filter...
Filter file types
Jump to…
Jump to file
Failed to load files.

Always

Just for now

Lock stderr in custom panic handler

  • Loading branch information
Manishearth committed Apr 1, 2016
commit 1aa6d558ac4d613c1ca7093bc34feade795f2a52
@@ -11,7 +11,7 @@ use std::sync::mpsc::Sender;
use std::thread;
use std::thread::Builder;
use thread_state;
#[allow(unused_must_use)]

pub fn spawn_named<F>(name: String, f: F)
where F: FnOnce() + Send + 'static
{
@@ -24,11 +24,15 @@ pub fn spawn_named<F>(name: String, f: F)
let payload = info.payload();
if let Some(s) = payload.downcast_ref::<String>() {
if s.contains("SendError") {

This comment has been minimized.

@Manishearth

Manishearth Apr 1, 2016

Author Member

We could perhaps improve this check with a better regex match.

write!(stderr(), "Thread \"{}\" panicked with an unwrap of `SendError` (backtrace skipped)\n",
let err = stderr();
let _ = write!(err.lock(), "Thread \"{}\" panicked with an unwrap of \
`SendError` (backtrace skipped)\n",
thread::current().name().unwrap_or("<unknown thread>"));
return;
} else if s.contains("RecvError") {
write!(stderr(), "Thread \"{}\" panicked with an unwrap of `RecvError` (backtrace skipped)\n",
let err = stderr();
let _ = write!(err.lock(), "Thread \"{}\" panicked with an unwrap of \
`RecvError` (backtrace skipped)\n",
thread::current().name().unwrap_or("<unknown thread>"));
return;
}
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.