[evince] libview: make sure cancellable object is always cancelled in ev_job_cancel()
- From: Carlos Garcia Campos <carlosgc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evince] libview: make sure cancellable object is always cancelled in ev_job_cancel()
- Date: Sat, 4 Dec 2010 14:58:34 +0000 (UTC)
commit 87084fb2aabc726343f6515c09ac6d2bba42afb1
Author: Carlos Garcia Campos <carlosgc gnome org>
Date: Sat Dec 4 15:46:52 2010 +0100
libview: make sure cancellable object is always cancelled in ev_job_cancel()
It's safe to call it multiple times, and we still don't emit our
cancelled signal for finished jobs.
libview/ev-jobs.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
---
diff --git a/libview/ev-jobs.c b/libview/ev-jobs.c
index ee58943..3a74876 100644
--- a/libview/ev-jobs.c
+++ b/libview/ev-jobs.c
@@ -216,7 +216,7 @@ ev_job_run (EvJob *job)
void
ev_job_cancel (EvJob *job)
{
- if (job->cancelled || (job->finished && job->idle_finished_id == 0))
+ if (job->cancelled)
return;
ev_debug_message (DEBUG_JOBS, "job %s (%p) cancelled", EV_GET_TYPE_NAME (job), job);
@@ -225,6 +225,10 @@ ev_job_cancel (EvJob *job)
/* This should never be called from a thread */
job->cancelled = TRUE;
g_cancellable_cancel (job->cancellable);
+
+ if (job->finished && job->idle_finished_id == 0)
+ return;
+
g_signal_emit (job, job_signals[CANCELLED], 0);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]