void* smpi_shared_calloc_intercept(size_t num_elm, size_t elem_size, const char* file, int line);
void* smpi_shared_realloc_intercept(void* data, size_t size, const char* file, int line);
void smpi_shared_free(void* data);
-void smpi_exit(int status);
+void __attribute__((noreturn)) smpi_exit(int status);
#ifdef __cplusplus
} // extern "C"
#endif
smpi_process()->mark_as_initialized();
}
-void smpi_exit(int x){
- if(x!=0)
- smpi_exit_status = x;
- return;
+void smpi_exit(int res){
+ if(res != 0){
+ XBT_WARN("SMPI process did not return 0. Return value : %d", res);
+ smpi_exit_status = res;
+ }
+ simgrid::s4u::this_actor::exit();
+ while(1);//necessary for the noreturn attribute
}