+#include <config.h>
#include "ev-job-queue.h"
/* Like glib calling convention, all functions with _locked in their name assume
static GQueue *thumbnail_queue_high = NULL;
static GQueue *thumbnail_queue_low = NULL;
static GQueue *load_queue = NULL;
+static GQueue *save_queue = NULL;
static GQueue *fonts_queue = NULL;
static GQueue *print_queue = NULL;
ev_job_links_run (EV_JOB_LINKS (job));
else if (EV_IS_JOB_LOAD (job))
ev_job_load_run (EV_JOB_LOAD (job));
+ else if (EV_IS_JOB_SAVE (job))
+ ev_job_save_run (EV_JOB_SAVE (job));
else if (EV_IS_JOB_RENDER (job))
ev_job_render_run (EV_JOB_RENDER (job));
else if (EV_IS_JOB_FONTS (job))
if (job)
return job;
+ job = (EvJob *) g_queue_pop_head (save_queue);
+ if (job)
+ return job;
+
job = (EvJob *) g_queue_pop_head (thumbnail_queue_low);
if (job)
return job;
&& g_queue_is_empty (render_queue_low)
&& g_queue_is_empty (links_queue)
&& g_queue_is_empty (load_queue)
+ && g_queue_is_empty (save_queue)
&& g_queue_is_empty (thumbnail_queue_high)
&& g_queue_is_empty (thumbnail_queue_low)
&& g_queue_is_empty (fonts_queue)
links_queue = g_queue_new ();
load_queue = g_queue_new ();
+ save_queue = g_queue_new ();
render_queue_high = g_queue_new ();
render_queue_low = g_queue_new ();
async_render_queue_high = g_queue_new ();
} else if (EV_IS_JOB_LOAD (job)) {
/* the priority doesn't effect load */
return load_queue;
+ } else if (EV_IS_JOB_SAVE (job)) {
+ /* the priority doesn't effect save */
+ return save_queue;
} else if (EV_IS_JOB_LINKS (job)) {
/* the priority doesn't effect links */
return links_queue;
retval = remove_job_from_queue_locked (links_queue, job);
} else if (EV_IS_JOB_LOAD (job)) {
retval = remove_job_from_queue_locked (load_queue, job);
+ } else if (EV_IS_JOB_SAVE (job)) {
+ retval = remove_job_from_queue_locked (save_queue, job);
} else if (EV_IS_JOB_FONTS (job)) {
retval = remove_job_from_queue_locked (fonts_queue, job);
} else if (EV_IS_JOB_PRINT (job)) {