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

std: Slightly more robust env var handling #29305

Merged
merged 1 commit into from Nov 6, 2015

Commits on Oct 26, 2015

  1. std: Slightly more robust env var handling

    As discovered in rust-lang#29298, `env::set_var("", "")` will panic, but it turns out
    that it *also* deadlocks on Unix systems. This happens because if a panic
    happens while holding the environment lock, we then go try to read
    RUST_BACKTRACE, grabbing the environment lock, causing a deadlock.
    
    Specifically, the changes made here are:
    
    * The environment lock is pushed into `std::sys` instead of `std::env`. This
      also only puts it in the Unix implementation, not Windows where the functions
      are already threadsafe.
    * The `std::sys` implementation now returns `io::Result` so panics are
      explicitly at the `std::env` level. The panic messages have also been improved
      in these situations.
    alexcrichton committed Oct 26, 2015
    Copy the full SHA
    4b43e07 View commit details
    Browse the repository at this point in the history