int benching; /* 1: we are benchmarking; 0: we have enough data, no bench anymore */
} local_data_t;
+int smpi_sample_is_running = 0;
+
static char *sample_location(int global, const char *file, int line) {
if (global) {
return bprintf("%s:%d", file, line);
local_data_t *data;
smpi_bench_end(); /* Take time from previous, unrelated computation into account */
+ smpi_sample_is_running++;
+
if (!samples)
samples = xbt_dict_new_homogeneous(free);
data->count, data->iters, data->relstderr, data->threshold, data->mean);
smpi_execute(data->mean);
+ smpi_sample_is_running--;
smpi_bench_begin(); // prepare to capture future, unrelated computations
return 0;
}
case EEXIST:
xbt_die("Please cleanup /dev/shm/%s", loc);
default:
- xbt_die("An unhandled error occured while opening %s: %s", loc, strerror(errno));
+ xbt_die("An unhandled error occured while opening %s. shm_open: %s", loc, strerror(errno));
}
}
data = xbt_new(shared_data_t, 1);
data->loc = loc;
mem = shm_map(fd, size, data);
if (shm_unlink(loc) < 0) {
- XBT_WARN("Could not early unlink %s: %s", loc, strerror(errno));
+ XBT_WARN("Could not early unlink %s. shm_unlink: %s", loc, strerror(errno));
}
xbt_dict_set(allocs, loc, data, NULL);
XBT_DEBUG("Mapping %s at %p through %d", loc, mem, fd);