mirror of
https://github.com/nushell/nushell
synced 2024-12-29 06:23:11 +00:00
48e4448e55
# Description If a panic happens during a plugin call, because it always happens outside of the main thread, it currently just hangs Nushell because the plugin stays running without ever producing a response to the call. This adds a panic handler that calls `exit(1)` after the unwind finishes to the plugin runner. The panic error is still printed to stderr as always, and waiting for the unwind to finish helps to ensure that anything on the stack with `Drop` behavior that needed to run still runs, at least on that thread. # User-Facing Changes Panics now look like this, which is what they looked like before the plugin behavior was moved to a separate thread: ``` thread 'plugin runner (primary)' panicked at crates/nu_plugin_example/src/commands/main.rs:45:9: Test panic note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace Error: nu:🐚:plugin_failed_to_decode × Plugin failed to decode: Failed to receive response to plugin call ``` # Tests + Formatting - 🟢 `toolkit fmt` - 🟢 `toolkit clippy` - 🟢 `toolkit test` - 🟢 `toolkit test stdlib` |
||
---|---|---|
.. | ||
src | ||
Cargo.toml | ||
LICENSE | ||
README.md |