I/O Job function.
Long-running jobs should periodically check the
cancellable to see if they have been cancelled.
optional Cancellable object, null to ignore.
the data to pass to callback function
true if this function should be called again to complete the job, false if the job is complete (or cancelled)