This function provides a simple mechanism for providers to initiate low-priority background jobs.
Jobs can be submitted from any thread, but execution of the jobs is always as follows:
1) The CamelSession:job-started
signal is emitted from the thread in which this was
created. This is typically the same thread that hosts the global default MainContext, or "main" thread.
2) The callback
function is invoked from a different thread where it's safe to call synchronous functions.
3) Once callback
has returned, the CamelSesson:job-finished
signal is emitted from the same thread as
CamelSession:job-started
was emitted.
4) Finally if a notify
function was provided, it is invoked and passed user_data
so that user_data
can be freed.
this |
a Session |
description |
human readable description of the job, shown to a user |
callback | |
notify |
a DestroyNotify function |
user_data |
user data passed to the callback |