这篇教程C++ virObjectUnlock函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中virObjectUnlock函数的典型用法代码示例。如果您正苦于以下问题:C++ virObjectUnlock函数的具体用法?C++ virObjectUnlock怎么用?C++ virObjectUnlock使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了virObjectUnlock函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: virObjectLockchar *virSecurityManagerGetMountOptions(virSecurityManagerPtr mgr, virDomainDefPtr vm){ if (mgr->drv->domainGetSecurityMountOptions) { char *ret; virObjectLock(mgr); ret = mgr->drv->domainGetSecurityMountOptions(mgr, vm); virObjectUnlock(mgr); return ret; } virReportUnsupportedError(); return NULL;}
开发者ID:ISI-apex,项目名称:libvirt-ARM,代码行数:14,
示例2: virSecurityManagerSetHugepagesint virSecurityManagerSetHugepages(virSecurityManagerPtr mgr, virDomainDefPtr vm, const char *path){ if (mgr->drv->domainSetSecurityHugepages) { int ret; virObjectLock(mgr); ret = mgr->drv->domainSetSecurityHugepages(mgr, vm, path); virObjectUnlock(mgr); return ret; } return 0;}
开发者ID:ISI-apex,项目名称:libvirt-ARM,代码行数:14,
示例3: virSecurityManagerGetModelconst char *virSecurityManagerGetModel(virSecurityManagerPtr mgr){ if (mgr->drv->getModel) { const char *ret; virObjectLock(mgr); ret = mgr->drv->getModel(mgr); virObjectUnlock(mgr); return ret; } virReportUnsupportedError(); return NULL;}
开发者ID:ISI-apex,项目名称:libvirt-ARM,代码行数:14,
示例4: virSecurityManagerSetProcessLabelint virSecurityManagerSetProcessLabel(virSecurityManagerPtr mgr, virDomainDefPtr vm){ if (mgr->drv->domainSetSecurityProcessLabel) { int ret; virObjectLock(mgr); ret = mgr->drv->domainSetSecurityProcessLabel(mgr, vm); virObjectUnlock(mgr); return ret; } virReportUnsupportedError(); return -1;}
开发者ID:ISI-apex,项目名称:libvirt-ARM,代码行数:14,
示例5: virLXCProcessMonitorEOFNotifystatic void virLXCProcessMonitorEOFNotify(virLXCMonitorPtr mon, virDomainObjPtr vm){ virLXCDriverPtr driver = lxc_driver; virObjectEventPtr event = NULL; virLXCDomainObjPrivatePtr priv; VIR_DEBUG("mon=%p vm=%p", mon, vm); virObjectLock(vm); priv = vm->privateData; virLXCProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_SHUTDOWN); if (!priv->wantReboot) { virLXCProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_SHUTDOWN); if (!priv->doneStopEvent) { event = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_STOPPED, priv->stopReason); virDomainAuditStop(vm, "shutdown"); } else { VIR_DEBUG("Stop event has already been sent"); } if (!vm->persistent) { virDomainObjListRemove(driver->domains, vm); vm = NULL; } } else { int ret = virLXCProcessReboot(driver, vm); virDomainAuditStop(vm, "reboot"); virDomainAuditStart(vm, "reboot", ret == 0); if (ret == 0) { event = virDomainEventRebootNewFromObj(vm); } else { event = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_STOPPED, priv->stopReason); if (!vm->persistent) { virDomainObjListRemove(driver->domains, vm); vm = NULL; } } } if (vm) virObjectUnlock(vm); if (event) { virObjectEventStateQueue(driver->domainEventState, event); }}
开发者ID:ISI-apex,项目名称:libvirt-ARM,代码行数:50,
示例6: virKeepAliveCheckMessageboolvirKeepAliveCheckMessage(virKeepAlivePtr ka, virNetMessagePtr msg, virNetMessagePtr *response){ bool ret = false; VIR_DEBUG("ka=%p, client=%p, msg=%p", ka, ka ? ka->client : "(null)", msg); *response = NULL; if (!ka) return false; virObjectLock(ka); ka->countToDeath = ka->count; ka->lastPacketReceived = ka->intervalStart = time(NULL); if (msg->header.prog == KEEPALIVE_PROGRAM && msg->header.vers == KEEPALIVE_PROTOCOL_VERSION && msg->header.type == VIR_NET_MESSAGE) { PROBE(RPC_KEEPALIVE_RECEIVED, "ka=%p client=%p prog=%d vers=%d proc=%d", ka, ka->client, msg->header.prog, msg->header.vers, msg->header.proc); ret = true; switch (msg->header.proc) { case KEEPALIVE_PROC_PING: VIR_DEBUG("Got keepalive request from client %p", ka->client); *response = virKeepAliveMessage(ka, KEEPALIVE_PROC_PONG); break; case KEEPALIVE_PROC_PONG: VIR_DEBUG("Got keepalive response from client %p", ka->client); break; default: VIR_DEBUG("Ignoring unknown keepalive message %d from client %p", msg->header.proc, ka->client); } } if (ka->timer >= 0) virEventUpdateTimeout(ka->timer, ka->interval * 1000); virObjectUnlock(ka); return ret;}
开发者ID:6WIND,项目名称:libvirt,代码行数:50,
示例7: virSecurityManagerGetBaseLabel/* return NULL if a base label is not present */const char *virSecurityManagerGetBaseLabel(virSecurityManagerPtr mgr, int virtType){ if (mgr->drv->getBaseLabel) { const char *ret; virObjectLock(mgr); ret = mgr->drv->getBaseLabel(mgr, virtType); virObjectUnlock(mgr); return ret; } return NULL;}
开发者ID:FrankYu,项目名称:libvirt,代码行数:15,
示例8: qemuMonitorTestFreevoid qemuMonitorTestFree(qemuMonitorTestPtr test){ size_t i; int timer = -1; if (!test) return; virMutexLock(&test->lock); if (test->running) { test->quit = true; /* HACK: Add a dummy timeout to break event loop */ timer = virEventAddTimeout(0, qemuMonitorTestFreeTimer, NULL, NULL); } virMutexUnlock(&test->lock); if (test->client) { virNetSocketRemoveIOCallback(test->client); virNetSocketClose(test->client); virObjectUnref(test->client); } virObjectUnref(test->server); if (test->mon) { virObjectUnlock(test->mon); qemuMonitorClose(test->mon); } virObjectUnref(test->vm); virThreadJoin(&test->thread); if (timer != -1) virEventRemoveTimeout(timer); VIR_FREE(test->incoming); VIR_FREE(test->outgoing); for (i = 0 ; i < test->nitems ; i++) qemuMonitorTestItemFree(test->items[i]); VIR_FREE(test->items); if (test->tmpdir && rmdir(test->tmpdir) < 0) VIR_WARN("Failed to remove tempdir: %s", strerror(errno)); VIR_FREE(test->tmpdir); virMutexDestroy(&test->lock); VIR_FREE(test);}
开发者ID:avdv,项目名称:libvirt,代码行数:50,
示例9: virSecurityManagerPreFork/* * Must be called before fork()'ing to ensure mutex state * is sane for the child to use. A negative return means the * child must not be forked; a successful return must be * followed by a call to virSecurityManagerPostFork() in both * parent and child. */intvirSecurityManagerPreFork(virSecurityManagerPtr mgr){ int ret = 0; virObjectLock(mgr); if (mgr->drv->preFork) { ret = mgr->drv->preFork(mgr); if (ret < 0) virObjectUnlock(mgr); } return ret;}
开发者ID:FrankYu,项目名称:libvirt,代码行数:21,
示例10: virNetServerClientSetDispatchervoid virNetServerClientSetDispatcher(virNetServerClientPtr client, virNetServerClientDispatchFunc func, void *opaque){ virObjectLock(client); /* Only set dispatcher if not already set, to avoid race * with dispatch code that runs without locks held */ if (!client->dispatchFunc) { client->dispatchFunc = func; client->dispatchOpaque = opaque; } virObjectUnlock(client);}
开发者ID:libvirt,项目名称:libvirt,代码行数:14,
示例11: virSecurityManagerGetModelconst char *virSecurityManagerGetModel(virSecurityManagerPtr mgr){ if (mgr->drv->getModel) { const char *ret; virObjectLock(mgr); ret = mgr->drv->getModel(mgr); virObjectUnlock(mgr); return ret; } virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__); return NULL;}
开发者ID:bigclouds,项目名称:libvirt,代码行数:14,
示例12: virAdmConnectUnregisterCloseCallback/** * virAdmConnectUnregisterCloseCallback: * @conn: pointer to connection object * @cb: pointer to the current registered callback * * Unregisters the callback previously set with the * virAdmConnectRegisterCloseCallback method. The callback * will no longer receive notifications when the connection * closes. If a virFreeCallback was provided at time of * registration, it will be invoked. * * Returns 0 on success, -1 on error */int virAdmConnectUnregisterCloseCallback(virAdmConnectPtr conn, virAdmConnectCloseFunc cb){ VIR_DEBUG("conn=%p", conn); virResetLastError(); virCheckAdmConnectReturn(conn, -1); virObjectLock(conn); virObjectLock(conn->closeCallback); virCheckNonNullArgGoto(cb, error); if (conn->closeCallback->callback != cb) { virReportError(VIR_ERR_OPERATION_INVALID, "%s", _("A different callback was requested")); goto error; } conn->closeCallback->callback = NULL; if (conn->closeCallback->freeCallback) conn->closeCallback->freeCallback(conn->closeCallback->opaque); conn->closeCallback->freeCallback = NULL; virObjectUnlock(conn->closeCallback); virObjectUnlock(conn); virObjectUnref(conn); return 0; error: virObjectUnlock(conn->closeCallback); virObjectUnlock(conn); virDispatchError(NULL); return -1;}
开发者ID:joe-nas,项目名称:libvirt,代码行数:50,
示例13: virSecurityManagerDomainSetDirLabelintvirSecurityManagerDomainSetDirLabel(virSecurityManagerPtr mgr, virDomainDefPtr vm, const char *path){ if (mgr->drv->domainSetDirLabel) { int ret; virObjectLock(mgr); ret = mgr->drv->domainSetDirLabel(mgr, vm, path); virObjectUnlock(mgr); return ret; } return 0;}
开发者ID:FrankYu,项目名称:libvirt,代码行数:15,
示例14: virSecurityManagerRestoreImageLabelint virSecurityManagerRestoreImageLabel(virSecurityManagerPtr mgr, virDomainDefPtr vm, virDomainDiskDefPtr disk){ if (mgr->drv->domainRestoreSecurityImageLabel) { int ret; virObjectLock(mgr); ret = mgr->drv->domainRestoreSecurityImageLabel(mgr, vm, disk); virObjectUnlock(mgr); return ret; } virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__); return -1;}
开发者ID:bigclouds,项目名称:libvirt,代码行数:15,
示例15: virNetServerClientIsSecurebool virNetServerClientIsSecure(virNetServerClientPtr client){ bool secure = false; virObjectLock(client); if (client->tls) secure = true;#if WITH_SASL if (client->sasl) secure = true;#endif if (client->sock && virNetSocketIsLocal(client->sock)) secure = true; virObjectUnlock(client); return secure;}
开发者ID:libvirt,项目名称:libvirt,代码行数:15,
示例16: virSecurityManagerSetAllLabelint virSecurityManagerSetAllLabel(virSecurityManagerPtr mgr, virDomainDefPtr vm, const char *stdin_path){ if (mgr->drv->domainSetSecurityAllLabel) { int ret; virObjectLock(mgr); ret = mgr->drv->domainSetSecurityAllLabel(mgr, vm, stdin_path); virObjectUnlock(mgr); return ret; } virReportUnsupportedError(); return -1;}
开发者ID:CLisa,项目名称:libvirt,代码行数:15,
示例17: virSecurityManagerRestoreAllLabelint virSecurityManagerRestoreAllLabel(virSecurityManagerPtr mgr, virDomainDefPtr vm, int migrated){ if (mgr->drv->domainRestoreSecurityAllLabel) { int ret; virObjectLock(mgr); ret = mgr->drv->domainRestoreSecurityAllLabel(mgr, vm, migrated); virObjectUnlock(mgr); return ret; } virReportUnsupportedError(); return -1;}
开发者ID:CLisa,项目名称:libvirt,代码行数:15,
示例18: virSecurityManagerRestoreSavedStateLabelint virSecurityManagerRestoreSavedStateLabel(virSecurityManagerPtr mgr, virDomainDefPtr vm, const char *savefile){ if (mgr->drv->domainRestoreSavedStateLabel) { int ret; virObjectLock(mgr); ret = mgr->drv->domainRestoreSavedStateLabel(mgr, vm, savefile); virObjectUnlock(mgr); return ret; } virReportUnsupportedError(); return -1;}
开发者ID:CLisa,项目名称:libvirt,代码行数:15,
示例19: virSecurityManagerReserveLabelint virSecurityManagerReserveLabel(virSecurityManagerPtr mgr, virDomainDefPtr vm, pid_t pid){ if (mgr->drv->domainReserveSecurityLabel) { int ret; virObjectLock(mgr); ret = mgr->drv->domainReserveSecurityLabel(mgr, vm, pid); virObjectUnlock(mgr); return ret; } virReportUnsupportedError(); return -1;}
开发者ID:CLisa,项目名称:libvirt,代码行数:15,
示例20: virSecurityManagerSetImageLabelint virSecurityManagerSetImageLabel(virSecurityManagerPtr mgr, virDomainDefPtr vm, virDomainDiskDefPtr disk){ if (mgr->drv->domainSetSecurityImageLabel) { int ret; virObjectLock(mgr); ret = mgr->drv->domainSetSecurityImageLabel(mgr, vm, disk); virObjectUnlock(mgr); return ret; } virReportUnsupportedError(); return -1;}
开发者ID:CLisa,项目名称:libvirt,代码行数:15,
示例21: virSecurityManagerSetTapFDLabelint virSecurityManagerSetTapFDLabel(virSecurityManagerPtr mgr, virDomainDefPtr vm, int fd){ if (mgr->drv->domainSetSecurityTapFDLabel) { int ret; virObjectLock(mgr); ret = mgr->drv->domainSetSecurityTapFDLabel(mgr, vm, fd); virObjectUnlock(mgr); return ret; } virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__); return -1;}
开发者ID:bigclouds,项目名称:libvirt,代码行数:15,
示例22: virNetServerAddClientstatic int virNetServerAddClient(virNetServerPtr srv, virNetServerClientPtr client){ virObjectLock(srv); if (srv->nclients >= srv->nclients_max) { virReportError(VIR_ERR_RPC, _("Too many active clients (%zu), dropping connection from %s"), srv->nclients_max, virNetServerClientRemoteAddrString(client)); goto error; } if (virNetServerClientInit(client) < 0) goto error; if (VIR_EXPAND_N(srv->clients, srv->nclients, 1) < 0) { virReportOOMError(); goto error; } srv->clients[srv->nclients-1] = client; virObjectRef(client); virNetServerClientSetDispatcher(client, virNetServerDispatchNewMessage, srv); virNetServerClientInitKeepAlive(client, srv->keepaliveInterval, srv->keepaliveCount); virObjectUnlock(srv); return 0;error: virObjectUnlock(srv); return -1;}
开发者ID:siboulet,项目名称:libvirt-openvz,代码行数:36,
示例23: virSecurityManagerRestoreAllLabelint virSecurityManagerRestoreAllLabel(virSecurityManagerPtr mgr, virDomainDefPtr vm, int migrated){ if (mgr->drv->domainRestoreSecurityAllLabel) { int ret; virObjectLock(mgr); ret = mgr->drv->domainRestoreSecurityAllLabel(mgr, vm, migrated); virObjectUnlock(mgr); return ret; } virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__); return -1;}
开发者ID:bigclouds,项目名称:libvirt,代码行数:15,
示例24: virSecurityManagerSetAllLabelint virSecurityManagerSetAllLabel(virSecurityManagerPtr mgr, virDomainDefPtr vm, const char *stdin_path){ if (mgr->drv->domainSetSecurityAllLabel) { int ret; virObjectLock(mgr); ret = mgr->drv->domainSetSecurityAllLabel(mgr, vm, stdin_path); virObjectUnlock(mgr); return ret; } virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__); return -1;}
开发者ID:bigclouds,项目名称:libvirt,代码行数:15,
示例25: virSecurityManagerReserveLabelint virSecurityManagerReserveLabel(virSecurityManagerPtr mgr, virDomainDefPtr vm, pid_t pid){ if (mgr->drv->domainReserveSecurityLabel) { int ret; virObjectLock(mgr); ret = mgr->drv->domainReserveSecurityLabel(mgr, vm, pid); virObjectUnlock(mgr); return ret; } virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__); return -1;}
开发者ID:bigclouds,项目名称:libvirt,代码行数:15,
示例26: virSecurityManagerRestoreSavedStateLabelint virSecurityManagerRestoreSavedStateLabel(virSecurityManagerPtr mgr, virDomainDefPtr vm, const char *savefile){ if (mgr->drv->domainRestoreSavedStateLabel) { int ret; virObjectLock(mgr); ret = mgr->drv->domainRestoreSavedStateLabel(mgr, vm, savefile); virObjectUnlock(mgr); return ret; } virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__); return -1;}
开发者ID:bigclouds,项目名称:libvirt,代码行数:15,
示例27: virPortAllocatorAcquireint virPortAllocatorAcquire(virPortAllocatorPtr pa, unsigned short *port){ int ret = -1; size_t i; *port = 0; virObjectLock(pa); for (i = pa->start; i <= pa->end && !*port; i++) { bool used = false, v6used = false; if (virBitmapGetBit(pa->bitmap, i - pa->start, &used) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Failed to query port %zu"), i); goto cleanup; } if (used) continue; if (virPortAllocatorBindToPort(&v6used, i, AF_INET6) < 0 || virPortAllocatorBindToPort(&used, i, AF_INET) < 0) goto cleanup; if (!used && !v6used) { /* Add port to bitmap of reserved ports */ if (virBitmapSetBit(pa->bitmap, i - pa->start) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Failed to reserve port %zu"), i); goto cleanup; } *port = i; ret = 0; } } if (*port == 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Unable to find an unused port in range '%s' (%d-%d)"), pa->name, pa->start, pa->end); } cleanup: virObjectUnlock(pa); return ret;}
开发者ID:CLisa,项目名称:libvirt,代码行数:48,
示例28: vmwareDomainResumestatic intvmwareDomainResume(virDomainPtr dom){ struct vmware_driver *driver = dom->conn->privateData; virDomainObjPtr vm; const char *cmd[] = { VMRUN, "-T", PROGRAM_SENTINAL, "unpause", PROGRAM_SENTINAL, NULL }; int ret = -1; if (driver->type == TYPE_PLAYER) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("vmplayer does not support libvirt suspend/resume " "(vmware pause/unpause) operation ")); return ret; } vmwareDriverLock(driver); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid); vmwareDriverUnlock(driver); if (!vm) { virReportError(VIR_ERR_NO_DOMAIN, "%s", _("no domain with matching uuid")); goto cleanup; } vmwareSetSentinal(cmd, vmw_types[driver->type]); vmwareSetSentinal(cmd, ((vmwareDomainPtr) vm->privateData)->vmxPath); if (virDomainObjGetState(vm, NULL) != VIR_DOMAIN_PAUSED) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("domain is not in suspend state")); goto cleanup; } if (virRun(cmd, NULL) < 0) goto cleanup; virDomainObjSetState(vm, VIR_DOMAIN_RUNNING, VIR_DOMAIN_RUNNING_UNPAUSED); ret = 0; cleanup: if (vm) virObjectUnlock(vm); return ret;}
开发者ID:bigclouds,项目名称:libvirt,代码行数:48,
示例29: virSecurityManagerSetHostdevLabelint virSecurityManagerSetHostdevLabel(virSecurityManagerPtr mgr, virDomainDefPtr vm, virDomainHostdevDefPtr dev, const char *vroot){ if (mgr->drv->domainSetSecurityHostdevLabel) { int ret; virObjectLock(mgr); ret = mgr->drv->domainSetSecurityHostdevLabel(mgr, vm, dev, vroot); virObjectUnlock(mgr); return ret; } virReportUnsupportedError(); return -1;}
开发者ID:CLisa,项目名称:libvirt,代码行数:16,
示例30: virSecurityManagerGetProcessLabelint virSecurityManagerGetProcessLabel(virSecurityManagerPtr mgr, virDomainDefPtr vm, pid_t pid, virSecurityLabelPtr sec){ if (mgr->drv->domainGetSecurityProcessLabel) { int ret; virObjectLock(mgr); ret = mgr->drv->domainGetSecurityProcessLabel(mgr, vm, pid, sec); virObjectUnlock(mgr); return ret; } virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__); return -1;}
开发者ID:bigclouds,项目名称:libvirt,代码行数:16,
注:本文中的virObjectUnlock函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ virObjectUnref函数代码示例 C++ virObjectRef函数代码示例 |