+int smpi_sample_exit(int global, const char *file, int line, int iter_count){
+ if (smpi_process()->sampling()){
+ SampleLocation loc(global, file, line);
+
+ XBT_DEBUG("sample exit %s", loc.c_str());
+ auto sample = samples.find(loc);
+ if (sample == samples.end())
+ xbt_die("Y U NO use SMPI_SAMPLE_* macros? Stop messing directly with smpi_sample_* functions!");
+ LocalData& data = sample->second;
+
+ if (smpi_process()->sampling()){//end of loop, but still sampling needed
+ smpi_process()->set_sampling(0);
+ smpi_execute(data.mean*iter_count);
+ smpi_bench_begin();
+ }
+ }
+ return 0;
+}
+