Synopsis#include <gio/gio.h> GIOSchedulerJob; gboolean (*GIOSchedulerJobFunc) (GIOSchedulerJob *job, GCancellable *cancellable, gpointer user_data); void g_io_scheduler_push_job (GIOSchedulerJobFunc job_func, gpointer user_data, GDestroyNotify notify, gint io_priority, GCancellable *cancellable); void g_io_scheduler_cancel_all_jobs (void); gboolean g_io_scheduler_job_send_to_mainloop (GIOSchedulerJob *job, GSourceFunc func, gpointer user_data, GDestroyNotify notify); void g_io_scheduler_job_send_to_mainloop_async (GIOSchedulerJob *job, GSourceFunc func, gpointer user_data, GDestroyNotify notify); DescriptionSchedules asynchronous I/O operations. GIOScheduler integrates into the main event loop (GMainLoop) and may use threads if they are available.
Each I/O operation has a priority, and the scheduler uses the priorities
to determine the order in which operations are executed. They are
not used to determine system-wide I/O scheduling.
Priorities are integers, with lower numbers indicating higher priority.
It is recommended to choose priorities between
DetailsGIOSchedulerJobtypedef struct _GIOSchedulerJob GIOSchedulerJob; Opaque class for definining and scheduling IO jobs.
GIOSchedulerJobFunc ()gboolean (*GIOSchedulerJobFunc) (GIOSchedulerJob *job, GCancellable *cancellable, gpointer user_data); I/O Job function. Note that depending on whether threads are available, the GIOScheduler may run jobs in separate threads or in an idle in the mainloop.
Long-running jobs should periodically check the
g_io_scheduler_push_job ()void g_io_scheduler_push_job (GIOSchedulerJobFunc job_func, gpointer user_data, GDestroyNotify notify, gint io_priority, GCancellable *cancellable); Schedules the I/O job to run.
If
g_io_scheduler_cancel_all_jobs ()void g_io_scheduler_cancel_all_jobs (void); Cancels all cancellable I/O jobs.
A job is cancellable if a GCancellable was passed into
g_io_scheduler_job_send_to_mainloop ()gboolean g_io_scheduler_job_send_to_mainloop (GIOSchedulerJob *job, GSourceFunc func, gpointer user_data, GDestroyNotify notify); Used from an I/O job to send a callback to be run in the main loop (main thread), waiting for the result (and thus blocking the I/O job).
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); Used from an I/O job to send a callback to be run asynchronously in the main loop (main thread). 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
|