GIOScheduler

GIOScheduler — I/O Scheduler

Functions

Types and Values

Includes

#include <gio/gio.h>

Description

As of GLib 2.36, GIOScheduler is deprecated in favor of GThreadPool and GTask.

Schedules asynchronous I/O operations. GIOScheduler integrates into the main event loop (GMainLoop) and uses threads.

Functions

GIOSchedulerJobFunc ()

gboolean
(*GIOSchedulerJobFunc) (GIOSchedulerJob *job,
                        GCancellable *cancellable,
                        gpointer user_data);

I/O Job function.

Long-running jobs should periodically check the cancellable to see if they have been cancelled.

Parameters

job

a GIOSchedulerJob.

 

cancellable

optional GCancellable object, NULL to ignore.

 

user_data

the data to pass to callback function

 

Returns

TRUE if this function should be called again to complete the job, FALSE if the job is complete (or cancelled)


g_io_scheduler_push_job ()

void
g_io_scheduler_push_job (GIOSchedulerJobFunc job_func,
                         gpointer user_data,
                         GDestroyNotify notify,
                         gint io_priority,
                         GCancellable *cancellable);

g_io_scheduler_push_job is deprecated and should not be used in newly-written code.

use GThreadPool or g_task_run_in_thread()

Schedules the I/O job to run in another thread.

notify will be called on user_data after job_func has returned, regardless whether the job was cancelled or has run to completion.

If cancellable is not NULL, it can be used to cancel the I/O job by calling g_cancellable_cancel() or by calling g_io_scheduler_cancel_all_jobs().

Parameters

job_func

a GIOSchedulerJobFunc.

 

user_data

data to pass to job_func

 

notify

a GDestroyNotify for user_data , or NULL.

[allow-none]

io_priority

the I/O priority of the request.

 

cancellable

optional GCancellable object, NULL to ignore.

 

g_io_scheduler_cancel_all_jobs ()

void
g_io_scheduler_cancel_all_jobs (void);

g_io_scheduler_cancel_all_jobs is deprecated and should not be used in newly-written code.

You should never call this function, since you don't know how other libraries in your program might be making use of gioscheduler.

Cancels all cancellable I/O jobs.

A job is cancellable if a GCancellable was passed into g_io_scheduler_push_job().


g_io_scheduler_job_send_to_mainloop ()

gboolean
g_io_scheduler_job_send_to_mainloop (GIOSchedulerJob *job,
                                     GSourceFunc func,
                                     gpointer user_data,
                                     GDestroyNotify notify);

g_io_scheduler_job_send_to_mainloop is deprecated and should not be used in newly-written code.

Use g_main_context_invoke().

Used from an I/O job to send a callback to be run in the thread that the job was started from, waiting for the result (and thus blocking the I/O job).

Parameters

job

a GIOSchedulerJob

 

func

a GSourceFunc callback that will be called in the original thread

 

user_data

data to pass to func

 

notify

a GDestroyNotify for user_data , or NULL.

[allow-none]

Returns

The return value of func


g_io_scheduler_job_send_to_mainloop_async ()

void
g_io_scheduler_job_send_to_mainloop_async
                               (GIOSchedulerJob *job,
                                GSourceFunc func,
                                gpointer user_data,
                                GDestroyNotify notify);

g_io_scheduler_job_send_to_mainloop_async is deprecated and should not be used in newly-written code.

Use g_main_context_invoke().

Used from an I/O job to send a callback to be run asynchronously in the thread that the job was started from. The callback will be run when the main loop is available, but at that time the I/O job might have finished. The return value from the callback is ignored.

Note that if you are passing the user_data from g_io_scheduler_push_job() on to this function you have to ensure that it is not freed before func is called, either by passing NULL as notify to g_io_scheduler_push_job() or by using refcounting for user_data .

Parameters

job

a GIOSchedulerJob

 

func

a GSourceFunc callback that will be called in the original thread

 

user_data

data to pass to func

 

notify

a GDestroyNotify for user_data , or NULL.

[allow-none]

Types and Values

GIOSchedulerJob

typedef struct _GIOSchedulerJob GIOSchedulerJob;

Opaque class for defining and scheduling IO jobs.