summaryrefslogtreecommitdiff
path: root/src/glibext/delayed.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2013-08-31 22:50:48 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2013-08-31 22:50:48 (GMT)
commit0820b68115258d7260b69a5bfb179368aa265772 (patch)
treee5fa5ec8ee1463e7467a2669105345105b563eff /src/glibext/delayed.c
parented4bb73e5d68c1f81b8e0c3210aa221ec6f2675b (diff)
Removed some warnings by upgrading code to GLib 2.32.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@359 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/glibext/delayed.c')
-rw-r--r--src/glibext/delayed.c53
1 files changed, 23 insertions, 30 deletions
diff --git a/src/glibext/delayed.c b/src/glibext/delayed.c
index ae943d7..1a8c5bb 100644
--- a/src/glibext/delayed.c
+++ b/src/glibext/delayed.c
@@ -72,8 +72,8 @@ typedef struct _GTypedQueue
GtkExtStatusBar *statusbar; /* Barre de statut principale */
GDelayedWork *works; /* Tâches à mener à bien */
- GMutex *mutex; /* Verrou pour l'accès */
- GCond *cond; /* Réveil pour un traitement */
+ GMutex mutex; /* Verrou pour l'accès */
+ GCond cond; /* Réveil pour un traitement */
GThread *thread; /* Procédure de traitement */
@@ -200,8 +200,8 @@ static void g_delayed_work_class_init(GDelayedWorkClass *klass)
static void g_delayed_work_init(GDelayedWork *work)
{
work->completed = false;
- work->mutex = g_mutex_new();
- work->cond = g_cond_new();
+ g_mutex_init(&work->mutex);
+ g_cond_init(&work->cond);
}
@@ -220,8 +220,8 @@ static void g_delayed_work_init(GDelayedWork *work)
static void g_delayed_work_dispose(GDelayedWork *work)
{
- g_mutex_free(work->mutex);
- g_cond_free(work->cond);
+ g_mutex_clear(&work->mutex);
+ g_cond_clear(&work->cond);
G_OBJECT_CLASS(g_delayed_work_parent_class)->dispose(G_OBJECT(work));
@@ -264,12 +264,12 @@ static void g_delayed_work_process(GDelayedWork *work, GtkExtStatusBar *statusba
{
work->run(work, statusbar);
- g_mutex_lock(work->mutex);
+ g_mutex_lock(&work->mutex);
work->completed = true;
- g_cond_signal(work->cond);
- g_mutex_unlock(work->mutex);
+ g_cond_signal(&work->cond);
+ g_mutex_unlock(&work->mutex);
g_signal_emit_by_name(work, "work-completed");
@@ -290,12 +290,12 @@ static void g_delayed_work_process(GDelayedWork *work, GtkExtStatusBar *statusba
void g_delayed_work_wait_for_completion(GDelayedWork *work)
{
- g_mutex_lock(work->mutex);
+ g_mutex_lock(&work->mutex);
while (!work->completed)
- g_cond_wait(work->cond, work->mutex);
+ g_cond_wait(&work->cond, &work->mutex);
- g_mutex_unlock(work->mutex);
+ g_mutex_unlock(&work->mutex);
}
@@ -348,17 +348,10 @@ static void g_typed_queue_class_init(GTypedQueueClass *klass)
static void g_typed_queue_init(GTypedQueue *queue)
{
- GError *error; /* Bilan de création de thread */
+ g_mutex_init(&queue->mutex);
+ g_cond_init(&queue->cond);
- queue->mutex = g_mutex_new();
- if (queue->mutex == NULL)
- goto gtqi_error;
-
- queue->cond = g_cond_new();
- if (queue->cond == NULL)
- goto gtqi_error;
-
- queue->thread = g_thread_create((GThreadFunc)g_typed_queue_process, queue, FALSE, &error);
+ queue->thread = g_thread_new("chrysalide_queue", (GThreadFunc)g_typed_queue_process, queue);
if (!queue->thread)
goto gtqi_error;
@@ -383,8 +376,8 @@ static void g_typed_queue_init(GTypedQueue *queue)
static void g_typed_queue_dispose(GTypedQueue *queue)
{
- g_mutex_free(queue->mutex);
- g_cond_free(queue->cond);
+ g_mutex_clear(&queue->mutex);
+ g_cond_clear(&queue->cond);
G_OBJECT_CLASS(g_typed_queue_parent_class)->dispose(G_OBJECT(queue));
@@ -454,13 +447,13 @@ static GTypedQueue *g_typed_queue_new(GType type, GtkExtStatusBar *statusbar)
static void g_typed_queue_schedule(GTypedQueue *queue, GDelayedWork *work)
{
- g_mutex_lock(queue->mutex);
+ g_mutex_lock(&queue->mutex);
delayed_work_list_add_tail(work, &queue->works);
- g_cond_signal(queue->cond);
+ g_cond_signal(&queue->cond);
- g_mutex_unlock(queue->mutex);
+ g_mutex_unlock(&queue->mutex);
}
@@ -483,15 +476,15 @@ static void *g_typed_queue_process(GTypedQueue *queue)
while (1)
{
- g_mutex_lock(queue->mutex);
+ g_mutex_lock(&queue->mutex);
if (dl_list_empty(queue->works))
- g_cond_wait(queue->cond, queue->mutex);
+ g_cond_wait(&queue->cond, &queue->mutex);
work = queue->works;
delayed_work_list_del(work, &queue->works);
- g_mutex_unlock(queue->mutex);
+ g_mutex_unlock(&queue->mutex);
g_delayed_work_process(work, queue->statusbar);