return 0;
}
- if (vm->pid <= 0) {
+ if (vm->pid == 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Invalid PID %d for VM"),
(int)vm->pid);
bhyveProcessAutoDestroy);
virDomainObjSetState(vm, VIR_DOMAIN_SHUTOFF, reason);
- vm->pid = -1;
+ vm->pid = 0;
vm->def->id = -1;
bhyveProcessStopHook(vm, VIR_HOOK_BHYVE_OP_RELEASE);
int
virBhyveProcessShutdown(virDomainObj *vm)
{
- if (vm->pid <= 0) {
+ if (vm->pid == 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Invalid PID %d for VM"),
(int)vm->pid);
if (!virDomainObjIsActive(vm))
return 0;
- if (!vm->pid)
+ if (vm->pid == 0)
return 0;
virObjectLock(vm);
virCHDriver *driver = priv->driver;
char *ret = NULL;
- if (vm->pid > 0) {
+ if (vm->pid != 0) {
ret = virSystemdGetMachineNameByPID(vm->pid);
if (!ret)
virResetLastError();
vm->def->name);
}
- vm->pid = -1;
+ vm->pid = 0;
vm->def->id = -1;
g_clear_pointer(&priv->machineName, g_free);
virObjectLockable parent;
virCond cond;
- pid_t pid;
+ pid_t pid; /* 0 for no PID, avoid negative values like -1 */
virDomainStateReason state;
unsigned int autostart : 1;
bool privileged,
char *machineName)
{
- if (!vm->pid) {
+ if (vm->pid == 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("Cannot setup cgroups until process is started"));
return -1;
lxcProcessRemoveDomainStatus(cfg, vm);
virDomainObjSetState(vm, VIR_DOMAIN_SHUTOFF, reason);
- vm->pid = -1;
+ vm->pid = 0;
vm->def->id = -1;
if (!!g_atomic_int_dec_and_test(&driver->nactive) && driver->inhibitCallback)
_("Some processes refused to die"));
return -1;
}
- } else if (vm->pid > 0) {
+ } else if (vm->pid != 0) {
/* If cgroup doesn't exist, just try cleaning up the
* libvirt_lxc process */
if (virProcessKillPainfully(vm->pid, true) < 0) {
bool isdead = false;
char *eol;
- if (vm->pid <= 0 ||
+ if (vm->pid == 0 ||
(kill(vm->pid, 0) == -1 && errno == ESRCH))
isdead = true;
if (STREQ(status, "stopped")) {
virDomainObjSetState(dom, VIR_DOMAIN_SHUTOFF,
VIR_DOMAIN_SHUTOFF_UNKNOWN);
- dom->pid = -1;
+ dom->pid = 0;
} else {
virDomainObjSetState(dom, VIR_DOMAIN_RUNNING,
VIR_DOMAIN_RUNNING_UNKNOWN);
virQEMUDriver *driver = priv->driver;
char *ret = NULL;
- if (vm->pid > 0) {
+ if (vm->pid != 0) {
ret = virSystemdGetMachineNameByPID(vm->pid);
if (!ret)
virResetLastError();
g_clear_pointer(&vm->deprecations, g_free);
vm->ndeprecations = 0;
vm->taint = 0;
- vm->pid = -1;
+ vm->pid = 0;
virDomainObjSetState(vm, VIR_DOMAIN_SHUTOFF, reason);
for (i = 0; i < vm->def->niothreadids; i++)
vm->def->iothreadids[i]->thread_id = 0;
g_autofree char *name = NULL;
/* If the VM was inactive, we don't need to reconnect */
- if (!obj->pid)
+ if (obj->pid == 0)
return 0;
data = g_new0(struct qemuProcessReconnectData, 1);
if (!(vm = virDomainObjNew(driver->xmlopt)))
return -1;
- vm->pid = -1;
priv = vm->privateData;
priv->chardevStdioLogd = false;
priv->rememberOwner = true;