libvirt job 锁机制分析

libvirt 到后面 driver。每个方法里都有很多相同的,比如 qemuDomObjFromDomain  qemuDomainObjBeginJob  qemuDomainObjEnterMonitor qemuDomainObjExitMonitor qemuDomainObjEndJob   virDomainObjEndAPI。

这些都是后面对应方法必须写的,保证同一个vm只能有一个job在执行和只有一个qmp发出。

如果基础好,理解也是很快的。mutex锁,条件变量。这些。

vm = qemuDomObjFromDomain(domain)

qemuDomainObjBeginJob(driver, vm, QEMU_JOB_QUERY)

qemuDomainObjEnterMonitor

qemuDomainObjExitMonitor(driver, vm)

qemuDomainObjEndJob(driver, vm);

virDomainObjEndAPI(&vm);

 

主要分析图:


版权声明:本文为wllabs原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。