static int virThreadJobOnceInit(void) { if (virThreadLocalInit(&virThreadJobWorker, NULL) < 0 || virThreadLocalInit(&virThreadJobName, NULL) < 0) return -1; return 0; }
int virThreadInitialize(void) { if (virMutexInit(&virThreadLocalLock) < 0) return -1; if (virThreadLocalInit(&virCondEvent, virCondEventCleanup) < 0) return -1; return 0; }
static int virIdentityOnceInit(void) { if (!VIR_CLASS_NEW(virIdentity, virClassForObject())) return -1; if (virThreadLocalInit(&virIdentityCurrent, (virThreadLocalCleanup)virObjectUnref) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Cannot initialize thread local for current identity")); return -1; } return 0; }
static int virIdentityOnceInit(void) { if (!(virIdentityClass = virClassNew(virClassForObject(), "virIdentity", sizeof(virIdentity), virIdentityDispose))) return -1; if (virThreadLocalInit(&virIdentityCurrent, (virThreadLocalCleanup)virObjectUnref) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Cannot initialize thread local for current identity")); return -1; } return 0; }
/** * virErrorInitialize: * * Initialize the error data (per thread) * * Returns 0 in case of success, -1 in case of failure. */ int virErrorInitialize(void) { return virThreadLocalInit(&virLastErr, virLastErrFreeData); }