Skip to content
Snippets Groups Projects
Commit 55856098 authored by Stéphane Del Pino's avatar Stéphane Del Pino
Browse files

Call slurm_init only once

parent c8b336e9
No related branches found
No related tags found
No related merge requests found
......@@ -9,6 +9,39 @@
#ifdef PUGS_HAS_SLURM
#include <slurm/slurm.h>
// LCOV_EXCL_START
class SlurmWrapper
{
private:
int m_slurm_job_id = -1;
public:
bool mustStop() const
{
if (m_slurm_job_id == -1) {
false;
} else {
return slurm_get_rem_time(m_slurm_job_id) < 150;
}
}
SlurmWrapper()
{
char* env = getenv("SLURM_JOB_ID");
if (env != nullptr) {
slurm_init(nullptr);
m_slurm_job_id = std::atoi(env);
}
}
~SlurmWrapper()
{
slurm_fini();
}
};
// LCOV_EXCL_STOP
#endif // PUGS_HAS_SLURM
bool
......@@ -29,22 +62,16 @@ stop()
stop = elapse_time > stop_file_age;
}
#ifdef PUGS_HAS_SLURM
#ifdef PUGS_HAS_SLURM
// LCOV_EXCL_START
char* env = getenv("SLURM_JOB_ID");
if (env != nullptr) {
slurm_init(nullptr);
int slurm_job_id = std::atoi(env);
if (slurm_get_rem_time(slurm_job_id) < 150) {
stop = true;
}
slurm_fini();
static SlurmWrapper slurm_wrapper;
if (slurm_wrapper.mustStop()) {
stop = true;
}
// LCOV_EXCL_STOP
#endif // PUGS_HAS_SLURM
}
parallel::broadcast(stop, 0);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment