From 3a3da81bf8dfd186144a632d9d8768d37c578b42 Mon Sep 17 00:00:00 2001 From: Moe Jette <jette1@llnl.gov> Date: Fri, 15 Dec 2006 18:25:51 +0000 Subject: [PATCH] Add logic to deal with sleep() being interupted in accounting polling loop, could result in reading data too often. --- src/plugins/jobacct/linux/jobacct_linux.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/plugins/jobacct/linux/jobacct_linux.c b/src/plugins/jobacct/linux/jobacct_linux.c index 414280da2a4..ac841019157 100644 --- a/src/plugins/jobacct/linux/jobacct_linux.c +++ b/src/plugins/jobacct/linux/jobacct_linux.c @@ -593,11 +593,16 @@ static int _get_process_data_line(FILE *in, prec_t *prec) { static void *_watch_tasks(void *arg) { + int rem; + while(!jobacct_shutdown) { /* Do this until shutdown is requested */ if(!suspended) { _get_process_data(); /* Update the data */ } - sleep(freq); + + rem = freq; + while (rem) /* subject to interupt */ + sleep(rem); } return NULL; } -- GitLab