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