priv = g_new0(virCHDomainObjPrivate, 1);
- if (virDomainObjInitJob(&priv->job, NULL) < 0) {
+ if (virDomainObjInitJob(&priv->job, NULL, NULL) < 0) {
g_free(priv);
return NULL;
}
int
virDomainObjInitJob(virDomainJobObj *job,
- virDomainObjPrivateJobCallbacks *cb)
+ virDomainObjPrivateJobCallbacks *cb,
+ virDomainJobDataPrivateDataCallbacks *jobDataPrivateCb)
{
memset(job, 0, sizeof(*job));
job->cb = cb;
+ job->jobDataPrivateCb = jobDataPrivateCb;
if (virCondInit(&job->cond) < 0)
return -1;
void *privateData; /* job specific collection of data */
virDomainObjPrivateJobCallbacks *cb;
+ virDomainJobDataPrivateDataCallbacks *jobDataPrivateCb; /* callbacks for privateData of
+ virDomainJobData, can be NULL */
};
int virDomainObjInitJob(virDomainJobObj *job,
- virDomainObjPrivateJobCallbacks *cb);
+ virDomainObjPrivateJobCallbacks *cb,
+ virDomainJobDataPrivateDataCallbacks *jobDataPrivateCb);
void virDomainObjResetJob(virDomainJobObj *job);
return NULL;
}
- if (virDomainObjInitJob(&priv->job, NULL) < 0) {
+ if (virDomainObjInitJob(&priv->job, NULL, NULL) < 0) {
virChrdevFree(priv->devs);
g_free(priv);
return NULL;
{
virLXCDomainObjPrivate *priv = g_new0(virLXCDomainObjPrivate, 1);
- if (virDomainObjInitJob(&priv->job, NULL) < 0) {
+ if (virDomainObjInitJob(&priv->job, NULL, NULL) < 0) {
g_free(priv);
return NULL;
}
g_autoptr(qemuDomainObjPrivate) priv = g_new0(qemuDomainObjPrivate, 1);
g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(opaque);
- if (virDomainObjInitJob(&priv->job, &qemuPrivateJobCallbacks) < 0) {
+ if (virDomainObjInitJob(&priv->job, &qemuPrivateJobCallbacks,
+ &qemuJobDataPrivateDataCallbacks) < 0) {
virReportSystemError(errno, "%s",
_("Unable to init qemu driver mutexes"));
return NULL;
virDomainAsyncJobTypeToString(asyncJob),
obj, obj->def->name);
virDomainObjResetAsyncJob(&priv->job);
- priv->job.current = virDomainJobDataInit(&qemuJobDataPrivateDataCallbacks);
+ priv->job.current = virDomainJobDataInit(priv->job.jobDataPrivateCb);
priv->job.current->status = VIR_DOMAIN_JOB_STATUS_ACTIVE;
priv->job.asyncJob = asyncJob;
priv->job.asyncOwner = virThreadSelfID();