pixel-processor: fix GMutex related deprecation

This commit is contained in:
Michael Muré
2012-05-06 21:03:02 +09:00
parent 99d5874b65
commit c12a65d277

View File

@ -40,7 +40,7 @@
static GThreadPool *pool = NULL;
static GMutex *pool_mutex = NULL;
static GMutex pool_mutex;
static GCond *pool_cond = NULL;
@ -68,7 +68,7 @@ struct _PixelProcessor
gpointer data;
#ifdef ENABLE_MP
GMutex *mutex;
GMutex mutex;
gint threads;
gboolean first;
#endif
@ -88,7 +88,7 @@ do_parallel_regions (PixelProcessor *processor)
PixelRegion tr[4];
gint i;
g_mutex_lock (processor->mutex);
g_mutex_lock (&processor->mutex);
/* the first thread getting here must not call pixel_regions_process() */
if (! processor->first && processor->PRI)
@ -112,7 +112,7 @@ do_parallel_regions (PixelProcessor *processor)
}
}
g_mutex_unlock (processor->mutex);
g_mutex_unlock (&processor->mutex);
switch (processor->num_regions)
{
@ -148,7 +148,7 @@ do_parallel_regions (PixelProcessor *processor)
break;
}
g_mutex_lock (processor->mutex);
g_mutex_lock (&processor->mutex);
for (i = 0; i < processor->num_regions; i++)
{
@ -169,15 +169,15 @@ do_parallel_regions (PixelProcessor *processor)
if (processor->threads == 0)
{
g_mutex_unlock (processor->mutex);
g_mutex_unlock (&processor->mutex);
g_mutex_lock (pool_mutex);
g_mutex_lock (&pool_mutex);
g_cond_signal (pool_cond);
g_mutex_unlock (pool_mutex);
g_mutex_unlock (&pool_mutex);
}
else
{
g_mutex_unlock (processor->mutex);
g_mutex_unlock (&processor->mutex);
}
}
#endif
@ -285,9 +285,9 @@ pixel_regions_do_parallel (PixelProcessor *processor,
processor->first = TRUE;
processor->threads = tasks;
processor->mutex = g_mutex_new();
g_mutex_init (&processor->mutex);
g_mutex_lock (pool_mutex);
g_mutex_lock (&pool_mutex);
while (tasks--)
{
@ -311,11 +311,11 @@ pixel_regions_do_parallel (PixelProcessor *processor,
g_get_current_time (&timeout);
g_time_val_add (&timeout, PROGRESS_TIMEOUT * 1024);
g_cond_timed_wait (pool_cond, pool_mutex, &timeout);
g_cond_timed_wait (pool_cond, &pool_mutex, &timeout);
g_mutex_lock (processor->mutex);
g_mutex_lock (&processor->mutex);
progress = processor->progress;
g_mutex_unlock (processor->mutex);
g_mutex_unlock (&processor->mutex);
progress_func (progress_data,
(gdouble) progress / (gdouble) pixels);
@ -324,12 +324,10 @@ pixel_regions_do_parallel (PixelProcessor *processor,
else
{
while (processor->threads != 0)
g_cond_wait (pool_cond, pool_mutex);
g_cond_wait (pool_cond, &pool_mutex);
}
g_mutex_unlock (pool_mutex);
g_mutex_free (processor->mutex);
g_mutex_unlock (&pool_mutex);
}
else
#endif
@ -428,9 +426,6 @@ pixel_processor_set_num_threads (gint num_threads)
g_cond_free (pool_cond);
pool_cond = NULL;
g_mutex_free (pool_mutex);
pool_mutex = NULL;
}
}
else
@ -446,7 +441,7 @@ pixel_processor_set_num_threads (gint num_threads)
pool = g_thread_pool_new ((GFunc) do_parallel_regions, NULL,
num_threads, TRUE, &error);
pool_mutex = g_mutex_new ();
g_mutex_init (&pool_mutex);
pool_cond = g_cond_new ();
}