From 2610c89887faf410cfaf0f3cf9105c8908feab39 Mon Sep 17 00:00:00 2001 From: Danny Auble <da@llnl.gov> Date: Tue, 26 Sep 2006 22:18:36 +0000 Subject: [PATCH] race condition fixed --- src/sview/sview.c | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/sview/sview.c b/src/sview/sview.c index a59d678a8e3..35b65b8b450 100644 --- a/src/sview/sview.c +++ b/src/sview/sview.c @@ -109,9 +109,14 @@ void *_page_thr(void *arg) GtkTable *table = page->table; display_data_t *display_data = &main_display_data[num]; xfree(page); + static int thread_count = 0; + gdk_threads_enter(); sview_reset_grid(); - + thread_count++; + gdk_flush(); + gdk_threads_leave(); + while(page_running[num]) { g_static_mutex_lock(&sview_mutex); gdk_threads_enter(); @@ -120,9 +125,24 @@ void *_page_thr(void *arg) gdk_flush(); gdk_threads_leave(); g_static_mutex_unlock(&sview_mutex); + sleep(global_sleep_time); - } + gdk_threads_enter(); + if(thread_count > 1) { + gdk_flush(); + gdk_threads_leave(); + break; + } + gdk_flush(); + gdk_threads_leave(); + + } + gdk_threads_enter(); + thread_count--; + gdk_flush(); + gdk_threads_leave(); + return NULL; } -- GitLab