- try {
- rv = MSG_task_receive_ext(&task, alias, (double)jtimeout, /*host*/ nullptr);
- } catch (simgrid::kernel::context::Context::StopRequest& e) {
- jxbt_throw_by_name(env, "org/simgrid/msg/ProcessKilledError", "Process killed");
- }
+ simgrid::kernel::context::try_n_catch_stoprequest(
+ [&rv, &task, &alias, &jtimeout]() {
+ rv = MSG_task_receive_ext(&task, alias, (double)jtimeout, /*host*/ nullptr);
+ },
+ [&env]() { jxbt_throw_by_name(env, "org/simgrid/msg/ProcessKilledError", "Process killed"); });