这篇教程C++ virMutexInit函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中virMutexInit函数的典型用法代码示例。如果您正苦于以下问题:C++ virMutexInit函数的具体用法?C++ virMutexInit怎么用?C++ virMutexInit使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了virMutexInit函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: virNetClientStreamNewvirNetClientStreamPtr virNetClientStreamNew(virNetClientProgramPtr prog, int proc, unsigned serial){ virNetClientStreamPtr st; if (VIR_ALLOC(st) < 0) { virReportOOMError(); return NULL; } st->refs = 1; st->prog = prog; st->proc = proc; st->serial = serial; if (virMutexInit(&st->lock) < 0) { virNetError(VIR_ERR_INTERNAL_ERROR, "%s", _("cannot initialize mutex")); VIR_FREE(st); return NULL; } virNetClientProgramRef(prog); return st;}
开发者ID:syndicut,项目名称:libvirt,代码行数:27,
示例2: virObjectEventStateNew/** * virObjectEventStateNew: * * Allocate a new event state object. */virObjectEventStatePtrvirObjectEventStateNew(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;}
开发者ID:FrankYu,项目名称:libvirt,代码行数:34,
示例3: virCondInitint virCondInit(virCondPtr c){ c->waiters = NULL; if (virMutexInit(&c->lock) < 0) return -1; return 0;}
开发者ID:amery,项目名称:libvirt-vserver,代码行数:7,
示例4: virNetSASLContextNewClientvirNetSASLContextPtr virNetSASLContextNewClient(void){ virNetSASLContextPtr ctxt; int err; err = sasl_client_init(NULL); if (err != SASL_OK) { virNetError(VIR_ERR_AUTH_FAILED, _("failed to initialize SASL library: %d (%s)"), err, sasl_errstring(err, NULL, NULL)); return NULL; } if (VIR_ALLOC(ctxt) < 0) { virReportOOMError(); return NULL; } if (virMutexInit(&ctxt->lock) < 0) { virNetError(VIR_ERR_INTERNAL_ERROR, "%s", _("Failed to initialized mutex")); VIR_FREE(ctxt); return NULL; } ctxt->refs = 1; return ctxt;}
开发者ID:ansisatteka,项目名称:libvirt-ovs,代码行数:29,
示例5: virLogStartup/** * virLogStartup: * * Initialize the logging module * * Returns 0 if successful, and -1 in case or error */int virLogStartup(void) { const char *pbm = NULL; if (virLogInitialized) return -1; if (virMutexInit(&virLogMutex) < 0) return -1; virLogInitialized = 1; virLogLock(); if (VIR_ALLOC_N(virLogBuffer, virLogSize + 1) < 0) { /* * The debug buffer is not a critical component, allow startup * even in case of failure to allocate it in case of a * configuration mistake. */ virLogSize = 64 * 1024; if (VIR_ALLOC_N(virLogBuffer, virLogSize + 1) < 0) { pbm = "Failed to allocate debug buffer: deactivating debug log/n"; virLogSize = 0; } else { pbm = "Failed to allocate debug buffer: reduced to 64 kB/n"; } } virLogLen = 0; virLogStart = 0; virLogEnd = 0; virLogDefaultPriority = VIR_LOG_DEFAULT; virLogUnlock(); if (pbm) VIR_WARN("%s", pbm); return 0;}
开发者ID:danwent,项目名称:libvirt-ovs,代码行数:41,
示例6: virNetSASLContextNewServervirNetSASLContextPtr virNetSASLContextNewServer(const char *const*usernameWhitelist){ virNetSASLContextPtr ctxt; int err; err = sasl_server_init(NULL, "libvirt"); if (err != SASL_OK) { virNetError(VIR_ERR_AUTH_FAILED, _("failed to initialize SASL library: %d (%s)"), err, sasl_errstring(err, NULL, NULL)); return NULL; } if (VIR_ALLOC(ctxt) < 0) { virReportOOMError(); return NULL; } if (virMutexInit(&ctxt->lock) < 0) { virNetError(VIR_ERR_INTERNAL_ERROR, "%s", _("Failed to initialized mutex")); VIR_FREE(ctxt); return NULL; } ctxt->usernameWhitelist = usernameWhitelist; ctxt->refs = 1; return ctxt;}
开发者ID:ansisatteka,项目名称:libvirt-ovs,代码行数:30,
示例7: parallelsStorageOpenstatic virDrvOpenStatusparallelsStorageOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, unsigned int flags){ virStorageDriverStatePtr storageState; virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR); if (STRNEQ(conn->driver->name, "Parallels")) return VIR_DRV_OPEN_DECLINED; if (VIR_ALLOC(storageState) < 0) return VIR_DRV_OPEN_ERROR; if (virMutexInit(&storageState->lock) < 0) { VIR_FREE(storageState); return VIR_DRV_OPEN_ERROR; } conn->storagePrivateData = storageState; parallelsStorageLock(storageState); if (parallelsLoadPools(conn)) goto error; parallelsStorageUnlock(storageState); return VIR_DRV_OPEN_SUCCESS; error: parallelsStorageUnlock(storageState); parallelsStorageClose(conn); return -1;}
开发者ID:CLisa,项目名称:libvirt,代码行数:34,
示例8: virNodeSuspendInit/** * virNodeSuspendInit: * * Get the system-wide sleep states supported by the host, such as * Suspend-to-RAM, Suspend-to-Disk, or Hybrid-Suspend, so that a request * to suspend/hibernate the host can be handled appropriately based on * this information. * * Returns 0 if successful, and -1 in case of error. */int virNodeSuspendInit(void){ if (virMutexInit(&virNodeSuspendMutex) < 0) return -1; return 0;}
开发者ID:ansisatteka,项目名称:libvirt-ovs,代码行数:17,
示例9: virGetConnect/** * virGetConnect: * * Allocates a new hypervisor connection structure * * Returns a new pointer or NULL in case of error. */virConnectPtrvirGetConnect(void) { virConnectPtr ret; if (VIR_ALLOC(ret) < 0) { virReportOOMError(); goto failed; } if (virMutexInit(&ret->lock) < 0) { VIR_FREE(ret); goto failed; } ret->magic = VIR_CONNECT_MAGIC; ret->driver = NULL; ret->networkDriver = NULL; ret->privateData = NULL; ret->networkPrivateData = NULL; ret->interfacePrivateData = NULL; ret->refs = 1; return ret;failed: if (ret != NULL) { virMutexDestroy(&ret->lock); VIR_FREE(ret); } return NULL;}
开发者ID:intgr,项目名称:libvirt,代码行数:37,
示例10: virInterfaceAssignDefvirInterfaceObjPtr virInterfaceAssignDef(virInterfaceObjListPtr interfaces, virInterfaceDefPtr def){ virInterfaceObjPtr iface; if ((iface = virInterfaceFindByName(interfaces, def->name))) { virInterfaceDefFree(iface->def); iface->def = def; return iface; } if (VIR_ALLOC(iface) < 0) return NULL; if (virMutexInit(&iface->lock) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("cannot initialize mutex")); VIR_FREE(iface); return NULL; } virInterfaceObjLock(iface); iface->def = def; if (VIR_REALLOC_N(interfaces->objs, interfaces->count + 1) < 0) { VIR_FREE(iface); return NULL; } interfaces->objs[interfaces->count] = iface; interfaces->count++; return iface;}
开发者ID:ISI-apex,项目名称:libvirt-ARM,代码行数:34,
示例11: virNetSASLContextNewClientvirNetSASLContextPtr virNetSASLContextNewClient(void){ virNetSASLContextPtr ctxt; int err; if (virNetSASLContextInitialize() < 0) return NULL; err = sasl_client_init(NULL); if (err != SASL_OK) { virReportError(VIR_ERR_AUTH_FAILED, _("failed to initialize SASL library: %d (%s)"), err, sasl_errstring(err, NULL, NULL)); return NULL; } if (!(ctxt = virObjectNew(virNetSASLContextClass))) return NULL; if (virMutexInit(&ctxt->lock) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Failed to initialized mutex")); VIR_FREE(ctxt); return NULL; } return ctxt;}
开发者ID:mohankku,项目名称:libvirt,代码行数:28,
示例12: virFDStreamOpenInternalstatic int virFDStreamOpenInternal(virStreamPtr st, int fd, virCommandPtr cmd, int errfd, unsigned long long length){ struct virFDStreamData *fdst; VIR_DEBUG("st=%p fd=%d cmd=%p errfd=%d length=%llu", st, fd, cmd, errfd, length); if ((st->flags & VIR_STREAM_NONBLOCK) && virSetNonBlock(fd) < 0) return -1; if (VIR_ALLOC(fdst) < 0) return -1; fdst->fd = fd; fdst->cmd = cmd; fdst->errfd = errfd; fdst->length = length; if (virMutexInit(&fdst->lock) < 0) { VIR_FREE(fdst); virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Unable to initialize mutex")); return -1; } st->driver = &virFDStreamDrv; st->privateData = fdst; return 0;}
开发者ID:ISI-apex,项目名称:libvirt-ARM,代码行数:34,
示例13: testCompareFilesstatic inttestCompareFiles(const char *xml, const char *sexpr){ char *sexprData = NULL; char *gotxml = NULL; int id; char * tty; int vncport; int ret = -1; virDomainDefPtr def = NULL; virConnectPtr conn; struct _xenUnifiedPrivate priv; conn = virGetConnect(); if (!conn) goto fail; if (virTestLoadFile(sexpr, &sexprData) < 0) goto fail; memset(&priv, 0, sizeof(priv)); /* Many puppies died to bring you this code. */ priv.caps = caps; conn->privateData = &priv; if (virMutexInit(&priv.lock) < 0) goto fail; if (xenGetDomIdFromSxprString(sexprData, &id) < 0) goto fail; xenUnifiedLock(&priv); tty = xenStoreDomainGetConsolePath(conn, id); vncport = xenStoreDomainGetVNCPort(conn, id); xenUnifiedUnlock(&priv); if (!(def = xenParseSxprString(sexprData, tty, vncport, caps, xmlopt))) goto fail; if (!virDomainDefCheckABIStability(def, def)) { fprintf(stderr, "ABI stability check failed on %s", xml); goto fail; } if (!(gotxml = virDomainDefFormat(def, caps, 0))) goto fail; if (virTestCompareToFile(gotxml, xml) < 0) goto fail; ret = 0; fail: VIR_FREE(sexprData); VIR_FREE(gotxml); virDomainDefFree(def); virObjectUnref(conn); return ret;}
开发者ID:Archer-sys,项目名称:libvirt,代码行数:59,
示例14: virNetDevVethCreateMutexOnceInitstatic int virNetDevVethCreateMutexOnceInit(void){ if (virMutexInit(&virNetDevVethCreateMutex) < 0) { virReportSystemError(errno, "%s", _("unable to init mutex")); return -1; } return 0;}
开发者ID:dmitryilyin,项目名称:libvirt,代码行数:8,
示例15: virThreadInitializeint virThreadInitialize(void){ if (virMutexInit(&virThreadLocalLock) < 0) return -1; if (virThreadLocalInit(&virCondEvent, virCondEventCleanup) < 0) return -1; return 0;}
开发者ID:amery,项目名称:libvirt-vserver,代码行数:9,
示例16: virNodeSuspendOnceInitstatic int virNodeSuspendOnceInit(void){ if (virMutexInit(&virNodeSuspendMutex) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Unable to initialize mutex")); return -1; } return 0;}
开发者ID:siboulet,项目名称:libvirt-openvz,代码行数:10,
示例17: virLogDaemonNewPostExecRestartstatic virLogDaemonPtrvirLogDaemonNewPostExecRestart(virJSONValuePtr object, bool privileged, virLogDaemonConfigPtr config){ virLogDaemonPtr logd; virJSONValuePtr child; if (VIR_ALLOC(logd) < 0) return NULL; if (virMutexInit(&logd->lock) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Unable to initialize mutex")); VIR_FREE(logd); return NULL; } if (!(child = virJSONValueObjectGet(object, "daemon"))) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Malformed daemon data from JSON file")); goto error; } if (!(logd->dmn = virNetDaemonNewPostExecRestart(child))) goto error; if (!(logd->srv = virNetDaemonAddServerPostExec(logd->dmn, "virtlogd", virLogDaemonClientNew, virLogDaemonClientNewPostExecRestart, virLogDaemonClientPreExecRestart, virLogDaemonClientFree, (void*)(intptr_t)(privileged ? 0x1 : 0x0)))) goto error; if (!(child = virJSONValueObjectGet(object, "handler"))) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Malformed daemon data from JSON file")); goto error; } if (!(logd->handler = virLogHandlerNewPostExecRestart(child, privileged, config->max_size, config->max_backups, virLogDaemonInhibitor, logd))) goto error; return logd; error: virLogDaemonFree(logd); return NULL;}
开发者ID:eskultety,项目名称:libvirt,代码行数:55,
示例18: virNetClientNewstatic virNetClientPtr virNetClientNew(virNetSocketPtr sock, const char *hostname){ virNetClientPtr client = NULL; int wakeupFD[2] = { -1, -1 }; if (pipe2(wakeupFD, O_CLOEXEC) < 0) { virReportSystemError(errno, "%s", _("unable to make pipe")); goto error; } if (VIR_ALLOC(client) < 0) goto no_memory; client->refs = 1; if (virMutexInit(&client->lock) < 0) goto error; client->sock = sock; client->wakeupReadFD = wakeupFD[0]; client->wakeupSendFD = wakeupFD[1]; wakeupFD[0] = wakeupFD[1] = -1; if (hostname && !(client->hostname = strdup(hostname))) goto no_memory; /* Set up a callback to listen on the socket data */ client->refs++; if (virNetSocketAddIOCallback(client->sock, VIR_EVENT_HANDLE_READABLE, virNetClientIncomingEvent, client, virNetClientEventFree) < 0) { client->refs--; VIR_DEBUG("Failed to add event watch, disabling events"); } PROBE(RPC_CLIENT_NEW, "client=%p refs=%d sock=%p", client, client->refs, client->sock); return client;no_memory: virReportOOMError();error: VIR_FORCE_CLOSE(wakeupFD[0]); VIR_FORCE_CLOSE(wakeupFD[1]); virNetClientFree(client); return NULL;}
开发者ID:kantai,项目名称:libvirt-vfork,代码行数:54,
示例19: virNetServerClientNewInternalstatic virNetServerClientPtrvirNetServerClientNewInternal(virNetSocketPtr sock, int auth, bool readonly, size_t nrequests_max, virNetTLSContextPtr tls){ virNetServerClientPtr client; if (virNetServerClientInitialize() < 0) return NULL; if (!(client = virObjectNew(virNetServerClientClass))) return NULL; if (virMutexInit(&client->lock) < 0) { VIR_FREE(client); return NULL; } client->sock = virObjectRef(sock); client->auth = auth; client->readonly = readonly; client->tlsCtxt = virObjectRef(tls); client->nrequests_max = nrequests_max; client->sockTimer = virEventAddTimeout(-1, virNetServerClientSockTimerFunc, client, NULL); if (client->sockTimer < 0) goto error; /* Prepare one for packet receive */ if (!(client->rx = virNetMessageNew(true))) goto error; client->rx->bufferLength = VIR_NET_MESSAGE_LEN_MAX; if (VIR_ALLOC_N(client->rx->buffer, client->rx->bufferLength) < 0) { virReportOOMError(); goto error; } client->nrequests = 1; PROBE(RPC_SERVER_CLIENT_NEW, "client=%p sock=%p", client, client->sock); return client;error: virObjectUnref(client); return NULL;}
开发者ID:mohankku,项目名称:libvirt,代码行数:51,
示例20: virThreadPoolNewFullvirThreadPoolPtrvirThreadPoolNewFull(size_t minWorkers, size_t maxWorkers, size_t prioWorkers, virThreadPoolJobFunc func, const char *funcName, void *opaque){ virThreadPoolPtr pool; if (minWorkers > maxWorkers) minWorkers = maxWorkers; if (VIR_ALLOC(pool) < 0) return NULL; pool->jobList.tail = pool->jobList.head = NULL; pool->jobFunc = func; pool->jobFuncName = funcName; pool->jobOpaque = opaque; if (virMutexInit(&pool->mutex) < 0) goto error; if (virCondInit(&pool->cond) < 0) goto error; if (virCondInit(&pool->quit_cond) < 0) goto error; pool->minWorkers = minWorkers; pool->maxWorkers = maxWorkers; pool->maxPrioWorkers = prioWorkers; if (virThreadPoolExpand(pool, minWorkers, false) < 0) goto error; if (prioWorkers) { if (virCondInit(&pool->prioCond) < 0) goto error; if (virThreadPoolExpand(pool, prioWorkers, true) < 0) goto error; } return pool; error: virThreadPoolFree(pool); return NULL;}
开发者ID:Archer-sys,项目名称:libvirt,代码行数:51,
示例21: qemuTestDriverInitint qemuTestDriverInit(virQEMUDriver *driver){ virSecurityManagerPtr mgr = NULL; memset(driver, 0, sizeof(*driver)); if (virMutexInit(&driver->lock) < 0) return -1; driver->config = virQEMUDriverConfigNew(false); if (!driver->config) goto error; /* Overwrite some default paths so it's consistent for tests. */ VIR_FREE(driver->config->libDir); VIR_FREE(driver->config->channelTargetDir); if (VIR_STRDUP(driver->config->libDir, "/tmp/lib") < 0 || VIR_STRDUP(driver->config->channelTargetDir, "/tmp/channel") < 0) goto error; driver->caps = testQemuCapsInit(); if (!driver->caps) goto error; /* Using /dev/null for libDir and cacheDir automatically produces errors * upon attempt to use any of them */ driver->qemuCapsCache = virQEMUCapsCacheNew("/dev/null", "/dev/null", 0, 0); if (!driver->qemuCapsCache) goto error; driver->xmlopt = virQEMUDriverCreateXMLConf(driver); if (!driver->xmlopt) goto error; if (qemuTestCapsCacheInsert(driver->qemuCapsCache, "empty", NULL) < 0) goto error; if (!(mgr = virSecurityManagerNew("none", "qemu", VIR_SECURITY_MANAGER_PRIVILEGED))) goto error; if (!(driver->securityManager = virSecurityManagerNewStack(mgr))) goto error; return 0; error: virObjectUnref(mgr); qemuTestDriverFree(driver); return -1;}
开发者ID:JGulic,项目名称:libvirt,代码行数:50,
示例22: virNWFilterIPAddrMapInitintvirNWFilterIPAddrMapInit(void){ ipAddressMap = virNWFilterHashTableCreate(0); if (!ipAddressMap) return -1; if (virMutexInit(&ipAddressMapLock) < 0) { virNWFilterIPAddrMapShutdown(); return -1; } return 0;}
开发者ID:ISI-apex,项目名称:libvirt-ARM,代码行数:14,
示例23: virLogStartup/** * virLogStartup: * * Initialize the logging module * * Returns 0 if successful, and -1 in case or error */int virLogStartup(void) { if (virLogInitialized) return(-1); if (virMutexInit(&virLogMutex) < 0) return -1; virLogInitialized = 1; virLogLock(); virLogLen = 0; virLogStart = 0; virLogEnd = 0; virLogDefaultPriority = VIR_LOG_DEFAULT; virLogUnlock(); return(0);}
开发者ID:amery,项目名称:libvirt-vserver,代码行数:23,
示例24: remoteAdmClientNewvoid *remoteAdmClientNew(virNetServerClientPtr client ATTRIBUTE_UNUSED, void *opaque){ struct daemonAdmClientPrivate *priv; uid_t clientuid; gid_t clientgid; pid_t clientpid; unsigned long long timestamp; if (virNetServerClientGetUNIXIdentity(client, &clientuid, &clientgid, &clientpid, ×tamp) < 0) return NULL; VIR_DEBUG("New client pid %lld uid %lld", (long long)clientpid, (long long)clientuid); if (geteuid() != clientuid) { virReportRestrictedError(_("Disallowing client %lld with uid %lld"), (long long)clientpid, (long long)clientuid); return NULL; } if (VIR_ALLOC(priv) < 0) return NULL; if (virMutexInit(&priv->lock) < 0) { VIR_FREE(priv); virReportSystemError(errno, "%s", _("unable to init mutex")); return NULL; } /* * We don't necessarily need to ref this object right now as there * must be one ref being held throughout the life of the daemon, * but let's just be safe for future. */ priv->dmn = virObjectRef(opaque); return priv;}
开发者ID:olafhering,项目名称:libvirt,代码行数:46,
示例25: virLogOnceInitstatic intvirLogOnceInit(void){ if (virMutexInit(&virLogMutex) < 0) return -1; virLogLock(); virLogDefaultPriority = VIR_LOG_DEFAULT; if (VIR_ALLOC_QUIET(virLogRegex) >= 0) { if (regcomp(virLogRegex, VIR_LOG_REGEX, REG_EXTENDED) != 0) VIR_FREE(virLogRegex); } virLogUnlock(); return 0;}
开发者ID:6WIND,项目名称:libvirt,代码行数:17,
示例26: virNetSASLSessionNewClientvirNetSASLSessionPtr virNetSASLSessionNewClient(virNetSASLContextPtr ctxt ATTRIBUTE_UNUSED, const char *service, const char *hostname, const char *localAddr, const char *remoteAddr, const sasl_callback_t *cbs){ virNetSASLSessionPtr sasl = NULL; int err; if (VIR_ALLOC(sasl) < 0) { virReportOOMError(); goto cleanup; } if (virMutexInit(&sasl->lock) < 0) { virNetError(VIR_ERR_INTERNAL_ERROR, "%s", _("Failed to initialized mutex")); VIR_FREE(sasl); return NULL; } sasl->refs = 1; /* Arbitrary size for amount of data we can encode in a single block */ sasl->maxbufsize = 1 << 16; err = sasl_client_new(service, hostname, localAddr, remoteAddr, cbs, SASL_SUCCESS_DATA, &sasl->conn); if (err != SASL_OK) { virNetError(VIR_ERR_AUTH_FAILED, _("Failed to create SASL client context: %d (%s)"), err, sasl_errstring(err, NULL, NULL)); goto cleanup; } return sasl;cleanup: virNetSASLSessionFree(sasl); return NULL;}
开发者ID:ansisatteka,项目名称:libvirt-ovs,代码行数:46,
示例27: virLogDaemonNewstatic virLogDaemonPtrvirLogDaemonNew(virLogDaemonConfigPtr config, bool privileged){ virLogDaemonPtr logd; if (VIR_ALLOC(logd) < 0) return NULL; if (virMutexInit(&logd->lock) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Unable to initialize mutex")); VIR_FREE(logd); return NULL; } if (!(logd->srv = virNetServerNew("virtlogd", 1, 1, 1, 0, config->max_clients, config->max_clients, -1, 0, NULL, virLogDaemonClientNew, virLogDaemonClientPreExecRestart, virLogDaemonClientFree, (void*)(intptr_t)(privileged ? 0x1 : 0x0)))) goto error; if (!(logd->dmn = virNetDaemonNew()) || virNetDaemonAddServer(logd->dmn, logd->srv) < 0) goto error; if (!(logd->handler = virLogHandlerNew(privileged, config->max_size, config->max_backups, virLogDaemonInhibitor, logd))) goto error; return logd; error: virLogDaemonFree(logd); return NULL;}
开发者ID:eskultety,项目名称:libvirt,代码行数:42,
示例28: virNetSASLSessionNewServervirNetSASLSessionPtr virNetSASLSessionNewServer(virNetSASLContextPtr ctxt ATTRIBUTE_UNUSED, const char *service, const char *localAddr, const char *remoteAddr){ virNetSASLSessionPtr sasl = NULL; int err; if (!(sasl = virObjectNew(virNetSASLSessionClass))) return NULL; if (virMutexInit(&sasl->lock) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Failed to initialized mutex")); VIR_FREE(sasl); return NULL; } /* Arbitrary size for amount of data we can encode in a single block */ sasl->maxbufsize = 1 << 16; err = sasl_server_new(service, NULL, NULL, localAddr, remoteAddr, NULL, SASL_SUCCESS_DATA, &sasl->conn); if (err != SASL_OK) { virReportError(VIR_ERR_AUTH_FAILED, _("Failed to create SASL client context: %d (%s)"), err, sasl_errstring(err, NULL, NULL)); goto cleanup; } return sasl;cleanup: virObjectUnref(sasl); return NULL;}
开发者ID:mohankku,项目名称:libvirt,代码行数:42,
示例29: virLogOnceInitstatic intvirLogOnceInit(void){ const char *pbm = NULL; if (virMutexInit(&virLogMutex) < 0) return -1; virLogLock(); if (VIR_ALLOC_N_QUIET(virLogBuffer, virLogSize + 1) < 0) { /* * The debug buffer is not a critical component, allow startup * even in case of failure to allocate it in case of a * configuration mistake. */ virLogSize = 64 * 1024; if (VIR_ALLOC_N_QUIET(virLogBuffer, virLogSize + 1) < 0) { pbm = "Failed to allocate debug buffer: deactivating debug log/n"; virLogSize = 0; } else { pbm = "Failed to allocate debug buffer: reduced to 64 kB/n"; } } virLogLen = 0; virLogStart = 0; virLogEnd = 0; virLogDefaultPriority = VIR_LOG_DEFAULT; if (VIR_ALLOC_QUIET(virLogRegex) >= 0) { if (regcomp(virLogRegex, VIR_LOG_REGEX, REG_EXTENDED) != 0) VIR_FREE(virLogRegex); } virLogUnlock(); if (pbm) VIR_WARN("%s", pbm); return 0;}
开发者ID:ryu25ish,项目名称:libvirt,代码行数:38,
示例30: virKeepAliveNewvirKeepAlivePtrvirKeepAliveNew(int interval, unsigned int count, void *client, virKeepAliveSendFunc sendCB, virKeepAliveDeadFunc deadCB, virKeepAliveFreeFunc freeCB){ virKeepAlivePtr ka; VIR_DEBUG("client=%p, interval=%d, count=%u", client, interval, count); if (VIR_ALLOC(ka) < 0) { virReportOOMError(); return NULL; } if (virMutexInit(&ka->lock) < 0) { VIR_FREE(ka); return NULL; } ka->refs = 1; ka->interval = interval; ka->count = count; ka->countToDeath = count; ka->timer = -1; ka->client = client; ka->sendCB = sendCB; ka->deadCB = deadCB; ka->freeCB = freeCB; PROBE(RPC_KEEPALIVE_NEW, "ka=%p client=%p refs=%d", ka, ka->client, ka->refs); return ka;}
开发者ID:pdf,项目名称:libvirt,代码行数:38,
注:本文中的virMutexInit函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ virMutexLock函数代码示例 C++ virMutexDestroy函数代码示例 |