|
|
|
|
|
by fweimer
952 days ago
|
|
Rust currently cannot reliably panic on allocation failures because the error object is inside a Box, which itself requires allocation. This means that if memory is tight, panicking itself might fail. For reference, this is the type that is returned from catch_unwind: https://doc.rust-lang.org/std/thread/type.Result.html But I completely agree that Rust has exceptions. They are even used in the toolchain implementation for non-local control flow. |
|
This seems like something that should be allocated at program startup, just like other things like the program's environment (I think it's copied to Rust's own data structures at startup to avoid using the non-threadsafe C API), and other things allocated at startup
.. but of course, not at Linux, such error allocation would be unneeded there..
.. except of you disable overcommit, which can and do happen, so in the general case you don't know if this error object can ever appear