From a2a40cb8eeca742ab3f3315aa0e1ff0b75c5c4e9 Mon Sep 17 00:00:00 2001 From: Danny Auble <da@llnl.gov> Date: Tue, 19 May 2009 15:44:20 +0000 Subject: [PATCH] fix for reservations and step info to return the correct data --- src/sview/job_info.c | 20 ++++++++++++++++---- src/sview/resv_info.c | 8 +++++++- src/sview/sview.c | 1 + 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/sview/job_info.c b/src/sview/job_info.c index 4eb7a7ee279..8e01556150c 100644 --- a/src/sview/job_info.c +++ b/src/sview/job_info.c @@ -2464,10 +2464,14 @@ extern int get_new_info_job_step(job_step_info_response_msg_t **info_ptr, int error_code = SLURM_NO_CHANGE_IN_DATA; time_t now = time(NULL); static time_t last; + static bool changed = 0; if(!force && ((now - last) < global_sleep_time)) { - error_code = SLURM_NO_CHANGE_IN_DATA; + if(*info_ptr != old_step_ptr) + error_code = SLURM_SUCCESS; *info_ptr = old_step_ptr; + if(changed) + return SLURM_SUCCESS; return error_code; } last = now; @@ -2476,16 +2480,24 @@ extern int get_new_info_job_step(job_step_info_response_msg_t **info_ptr, error_code = slurm_get_job_steps(old_step_ptr->last_update, 0, 0, &new_step_ptr, show_flags); - if (error_code == SLURM_SUCCESS) + if (error_code == SLURM_SUCCESS) { slurm_free_job_step_info_response_msg(old_step_ptr); - else if (slurm_get_errno () == SLURM_NO_CHANGE_IN_DATA) { + changed = 1; + } else if (slurm_get_errno () == SLURM_NO_CHANGE_IN_DATA) { error_code = SLURM_NO_CHANGE_IN_DATA; new_step_ptr = old_step_ptr; + changed = 0; } - } else + } else { error_code = slurm_get_job_steps((time_t) NULL, 0, 0, &new_step_ptr, show_flags); + changed = 1; + } old_step_ptr = new_step_ptr; + + if(*info_ptr != old_step_ptr) + error_code = SLURM_SUCCESS; + *info_ptr = new_step_ptr; return error_code; } diff --git a/src/sview/resv_info.c b/src/sview/resv_info.c index a626e4eac36..068cac31abc 100644 --- a/src/sview/resv_info.c +++ b/src/sview/resv_info.c @@ -806,7 +806,8 @@ extern int get_new_info_resv(reserve_info_msg_t **info_ptr, static bool changed = 0; if(!force && ((now - last) < global_sleep_time)) { - error_code = SLURM_NO_CHANGE_IN_DATA; + if(*info_ptr != resv_info_ptr) + error_code = SLURM_SUCCESS; *info_ptr = resv_info_ptr; if(changed) return SLURM_SUCCESS; @@ -829,7 +830,12 @@ extern int get_new_info_resv(reserve_info_msg_t **info_ptr, &new_resv_ptr); changed = 1; } + resv_info_ptr = new_resv_ptr; + + if(*info_ptr != resv_info_ptr) + error_code = SLURM_SUCCESS; + *info_ptr = new_resv_ptr; return error_code; } diff --git a/src/sview/sview.c b/src/sview/sview.c index f4981a669a9..cc832a9bc13 100644 --- a/src/sview/sview.c +++ b/src/sview/sview.c @@ -547,6 +547,7 @@ static GtkWidget *_get_menubar_menu(GtkWidget *window, GtkWidget *notebook) /* Finally, return the actual menu bar created by the item factory. */ return gtk_ui_manager_get_widget (ui_manager, "/main"); } + void *_popup_thr_main(void *arg) { popup_thr(arg); -- GitLab