il->can_destroy = TRUE;
#ifdef HAVE_GTHREAD
+#if GTK_CHECK_VERSION(2,32,0)
+ il->data_mutex = g_new(GMutex, 1);
+ g_mutex_init(il->data_mutex);
+ il->can_destroy_cond = g_new(GCond, 1);
+ g_cond_init((il->can_destroy_cond);
+#else
il->data_mutex = g_mutex_new();
il->can_destroy_cond = g_cond_new();
+#endif
#endif
DEBUG_1("new image loader %p, bufsize=%" G_GSIZE_FORMAT " idle_loop=%u", il, il->read_buffer_size, il->idle_read_loop_count);
}
file_data_unref(il->fd);
#ifdef HAVE_GTHREAD
+#if GTK_CHECK_VERSION(2,32,0)
+ g_mutex_clear(il->data_mutex);
+ g_free(il->data_mutex);
+ g_cond_clear(il->can_destroy_cond);
+ g_free(il->can_destroy_cond);
+#else
g_mutex_free(il->data_mutex);
g_cond_free(il->can_destroy_cond);
#endif
+#endif
}
void image_loader_free(ImageLoader *il)
if (!image_loader_thread_pool)
{
image_loader_thread_pool = g_thread_pool_new(image_loader_thread_run, NULL, -1, FALSE, NULL);
+#if GTK_CHECK_VERSION(2,32,0)
+ if (!image_loader_prio_cond) image_loader_prio_cond = g_new(GCond, 1);
+ g_cond_init(image_loader_prio_cond);
+ if (!image_loader_prio_mutex) image_loader_prio_mutex = g_new(GMutex, 1);
+ g_mutex_init(image_loader_prio_mutex);
+#else
image_loader_prio_cond = g_cond_new();
image_loader_prio_mutex = g_mutex_new();
+#endif
}
il->can_destroy = FALSE; /* ImageLoader can't be freed until image_loader_thread_run finishes */