Я обертываю библиотеку C, которая делает некоторые malloc
s, которые могут выйти из строя. Остальная часть Rust прерывается в OOM, поэтому я хотел бы сделать то же самое. Есть std::intrinsics::abort()
и core::intrinsics::abort()
(какая разница?), Но они оба нестабильны.Как прервать процесс ржавчины?
Как я могу прервать() со стабильной ржавчиной?
Я предполагаю, что есть причина, по которой стандартный код Rust не 'panic!()' На OOM, поэтому почему я не хотел его использовать. – Timmmm
@Timmmm Это потому, что Rust предполагает, что разматывание будет выделять память, и что один OOM означает, что ничего другого не сможет выделить. Лично я считаю, что это [слишком пессимистично и вызывает проблемы] (https://internals.rust-lang.org/t/could-we-support-unwinding-from-oom-at-least-for-collections/3673). – Kornel