/** * virObjectEventStateNew: * * Allocate a new event state object. */ virObjectEventStatePtr virObjectEventStateNew(void) { virObjectEventStatePtr state = NULL; if (VIR_ALLOC(state) < 0) goto error; if (virMutexInit(&state->lock) < 0) { virReportSystemError(errno, "%s", _("unable to initialize state mutex")); VIR_FREE(state); goto error; } if (VIR_ALLOC(state->callbacks) < 0) goto error; if (!(state->queue = virObjectEventQueueNew())) goto error; state->timer = -1; return state; error: virObjectEventStateFree(state); return NULL; }
/** * virObjectEventStateNew: * * Allocate a new event state object. */ virObjectEventStatePtr virObjectEventStateNew(void) { virObjectEventStatePtr state = NULL; if (virObjectEventInitialize() < 0) return NULL; if (!(state = virObjectLockableNew(virObjectEventStateClass))) return NULL; if (VIR_ALLOC(state->callbacks) < 0) goto error; if (!(state->queue = virObjectEventQueueNew())) goto error; state->timer = -1; return state; error: virObjectUnref(state); return NULL; }