Author: post
Date: 2012-08-06 21:30:23 +0200 (Mon, 06 Aug 2012)
New Revision: 4245
Modified:
trunk/src/rs-preview-widget.c
Log:
Make render thread lock properly - reported by Matthieu Volat.
Modified: trunk/src/rs-preview-widget.c
===================================================================
--- trunk/src/rs-preview-widget.c 2012-08-05 15:25:34 UTC (rev 4244)
+++ trunk/src/rs-preview-widget.c 2012-08-06 19:30:23 UTC (rev 4245)
@@ -484,6 +484,7 @@
preview->prev_inside_image = FALSE;
g_object_ref(preview->display_color_space);
+ g_mutex_unlock(preview->render_thread->render_mutex);
}
/**
@@ -2996,6 +2997,7 @@
ThreadInfo* t = _thread_info;
GTimeVal render_timeout;
GdkRectangle dirty_area_accum;
+ g_mutex_lock(t->render_mutex);
while (1)
{
t->render_pending = FALSE;
@@ -3019,14 +3021,15 @@
g_time_val_add(&render_timeout, wait);
gdk_rectangle_union(&dirty_area_accum, &t->dirty_area,
&dirty_area_accum);
} while (!t->finish_rendering && TRUE ==
g_cond_timed_wait(t->render, t->render_mutex, &render_timeout) &&
!t->finish_rendering);
+ g_mutex_unlock(t->render_mutex);
/* Do the render */
gdk_threads_enter();
rs_preview_do_render(t->preview, &dirty_area_accum);
GUI_CATCHUP();
gdk_threads_leave();
-#undef CAIRO_LINE
-
}
return NULL;
}
+
+#undef CAIRO_LINE
_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit