mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 17:34:18 +03:00
build: remove use of usleep gnulib module in favour of g_usleep
The usleep function was missing on older mingw versions, but we can rely on it existing everywhere these days. It may only support times upto 1 second in duration though, so we'll prefer to use g_usleep instead. The commandhelper program is not changed since that can't link to glib. Fortunately it doesn't need to build on Windows platforms either. Reviewed-by: Ján Tomko <jtomko@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
c4d18e8b3e
commit
27cb4c1a53
@ -90,7 +90,6 @@ timegm
|
||||
ttyname_r
|
||||
uname
|
||||
unsetenv
|
||||
usleep
|
||||
verify
|
||||
vsnprintf
|
||||
waitpid
|
||||
|
@ -1415,7 +1415,7 @@ hypervDomainSendKey(virDomainPtr domain, unsigned int codeset,
|
||||
|
||||
/* simulate holdtime by sleeping */
|
||||
if (holdtime > 0)
|
||||
usleep(holdtime * 1000);
|
||||
g_usleep(holdtime * 1000);
|
||||
|
||||
/* release the keys */
|
||||
for (i = 0; i < nkeycodes; i++) {
|
||||
|
@ -909,7 +909,7 @@ hypervInvokeMethod(hypervPrivate *priv, hypervInvokeParamsListPtr params,
|
||||
case MSVM_CONCRETEJOB_JOBSTATE_SHUTTING_DOWN:
|
||||
hypervFreeObject(priv, (hypervObject *)job);
|
||||
job = NULL;
|
||||
usleep(100 * 1000); /* sleep 100 ms */
|
||||
g_usleep(100 * 1000); /* sleep 100 ms */
|
||||
timeout -= 100;
|
||||
continue;
|
||||
case MSVM_CONCRETEJOB_JOBSTATE_COMPLETED:
|
||||
@ -1418,7 +1418,7 @@ hypervInvokeMsvmComputerSystemRequestStateChange(virDomainPtr domain,
|
||||
hypervFreeObject(priv, (hypervObject *)concreteJob);
|
||||
concreteJob = NULL;
|
||||
|
||||
usleep(100 * 1000);
|
||||
g_usleep(100 * 1000);
|
||||
continue;
|
||||
|
||||
case MSVM_CONCRETEJOB_JOBSTATE_COMPLETED:
|
||||
|
@ -657,7 +657,7 @@ virLockDaemonClientFree(void *opaque)
|
||||
VIR_WARN("Failed to kill off pid %lld",
|
||||
(unsigned long long)priv->clientPid);
|
||||
}
|
||||
usleep(200 * 1000);
|
||||
g_usleep(200 * 1000);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -376,7 +376,7 @@ virLockManagerSanlockSetupLockspace(virLockManagerSanlockDriverPtr driver)
|
||||
#else
|
||||
/* fall back to polling */
|
||||
VIR_DEBUG("Sleeping for %dms", LOCKSPACE_SLEEP);
|
||||
usleep(LOCKSPACE_SLEEP * 1000);
|
||||
g_usleep(LOCKSPACE_SLEEP * 1000);
|
||||
#endif
|
||||
VIR_DEBUG("Retrying to add lockspace (left %d)", retries);
|
||||
goto retry;
|
||||
|
@ -574,7 +574,7 @@ static int virLXCControllerAppendNBDPids(virLXCControllerPtr ctrl,
|
||||
while (!virFileExists(pidpath)) {
|
||||
/* wait for 100ms before checking again, but don't do it for ever */
|
||||
if (errno == ENOENT && loops < 10) {
|
||||
usleep(100 * 1000);
|
||||
g_usleep(100 * 1000);
|
||||
loops++;
|
||||
} else {
|
||||
virReportSystemError(errno,
|
||||
|
@ -2965,7 +2965,7 @@ static int lxcFreezeContainer(virDomainObjPtr vm)
|
||||
* decide that the freezing has been complete only with
|
||||
* the state actually transit to "FROZEN".
|
||||
*/
|
||||
usleep(check_interval * 1000);
|
||||
g_usleep(check_interval * 1000);
|
||||
|
||||
r = virCgroupGetFreezerState(priv->cgroup, &state);
|
||||
|
||||
|
@ -1095,7 +1095,7 @@ virLXCProcessReadLogOutputData(virDomainObjPtr vm,
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
usleep(100*1000);
|
||||
g_usleep(100*1000);
|
||||
retries--;
|
||||
}
|
||||
|
||||
|
@ -1034,7 +1034,7 @@ networkKillDaemon(pid_t pid,
|
||||
* than modifications to domains, this seems a reasonable
|
||||
* tradeoff in exchange for less code disruption.
|
||||
*/
|
||||
usleep(20 * 1000);
|
||||
g_usleep(20 * 1000);
|
||||
}
|
||||
VIR_WARN("Timed out waiting after SIG%s to %s process %d "
|
||||
"(network '%s')",
|
||||
|
@ -1273,7 +1273,7 @@ virNWFilterSnoopRatePenalty(virNWFilterSnoopPcapConfPtr pc,
|
||||
unsigned long long now;
|
||||
|
||||
if (virTimeMillisNowRaw(&now) < 0) {
|
||||
usleep(PCAP_FLOOD_TIMEOUT_MS); /* 1 ms */
|
||||
g_usleep(PCAP_FLOOD_TIMEOUT_MS); /* 1 ms */
|
||||
pc->penaltyTimeoutAbs = 0;
|
||||
} else {
|
||||
/* don't listen to the fd for 1 ms */
|
||||
@ -2010,7 +2010,7 @@ virNWFilterSnoopJoinThreads(void)
|
||||
while (virAtomicIntGet(&virNWFilterSnoopState.nThreads) != 0) {
|
||||
VIR_WARN("Waiting for snooping threads to terminate: %u",
|
||||
virAtomicIntGet(&virNWFilterSnoopState.nThreads));
|
||||
usleep(1000 * 1000);
|
||||
g_usleep(1000 * 1000);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -812,7 +812,7 @@ virNWFilterLearnThreadsTerminate(bool allowNewThreads)
|
||||
threadsTerminate = true;
|
||||
|
||||
while (virHashSize(pendingLearnReq) != 0)
|
||||
usleep((PKT_TIMEOUT_MS * 1000) / 3);
|
||||
g_usleep((PKT_TIMEOUT_MS * 1000) / 3);
|
||||
|
||||
if (allowNewThreads)
|
||||
threadsTerminate = false;
|
||||
|
@ -1650,7 +1650,7 @@ qemuMonitorJSONStartCPUs(qemuMonitorPtr mon)
|
||||
|
||||
virJSONValueFree(reply);
|
||||
reply = NULL;
|
||||
usleep(250000);
|
||||
g_usleep(250000);
|
||||
} while (++i <= timeout);
|
||||
|
||||
virJSONValueFree(cmd);
|
||||
|
@ -7611,7 +7611,7 @@ void qemuProcessStop(virQEMUDriverPtr driver,
|
||||
retry:
|
||||
if ((ret = qemuRemoveCgroup(vm)) < 0) {
|
||||
if (ret == -EBUSY && (retries++ < 5)) {
|
||||
usleep(200*1000);
|
||||
g_usleep(200*1000);
|
||||
goto retry;
|
||||
}
|
||||
VIR_WARN("Failed to remove cgroup for %s",
|
||||
|
@ -884,7 +884,7 @@ qemuExtTPMStartEmulator(virQEMUDriverPtr driver,
|
||||
rc = qemuTPMEmulatorGetPid(cfg->swtpmStateDir, shortName, &pid);
|
||||
if (rc < 0) {
|
||||
timeout -= 50;
|
||||
usleep(50 * 1000);
|
||||
g_usleep(50 * 1000);
|
||||
continue;
|
||||
}
|
||||
if (rc == 0 && pid == (pid_t)-1)
|
||||
|
@ -749,7 +749,7 @@ int virNetSocketNewConnectUNIX(const char *path,
|
||||
daemonLaunched = true;
|
||||
}
|
||||
|
||||
usleep(10000);
|
||||
g_usleep(10000);
|
||||
}
|
||||
|
||||
localAddr.len = sizeof(localAddr.data);
|
||||
|
@ -1349,7 +1349,7 @@ virSecurityManagerMetadataLock(virSecurityManagerPtr mgr ATTRIBUTE_UNUSED,
|
||||
if (retries && (errno == EACCES || errno == EAGAIN)) {
|
||||
/* File is locked. Try again. */
|
||||
retries--;
|
||||
usleep(1000);
|
||||
g_usleep(1000);
|
||||
continue;
|
||||
} else {
|
||||
virReportSystemError(errno,
|
||||
|
@ -1940,7 +1940,7 @@ virStorageBackendStablePath(virStoragePoolObjPtr pool,
|
||||
if (virDirOpenQuiet(&dh, def->target.path) < 0) {
|
||||
opentries++;
|
||||
if (loop && errno == ENOENT && opentries < 50) {
|
||||
usleep(100 * 1000);
|
||||
g_usleep(100 * 1000);
|
||||
goto reopen;
|
||||
}
|
||||
virReportSystemError(errno,
|
||||
@ -1975,7 +1975,7 @@ virStorageBackendStablePath(virStoragePoolObjPtr pool,
|
||||
}
|
||||
|
||||
if (!direrr && loop && ++retry < 100) {
|
||||
usleep(100 * 1000);
|
||||
g_usleep(100 * 1000);
|
||||
goto retry;
|
||||
}
|
||||
|
||||
|
@ -2656,7 +2656,7 @@ virCgroupKillPainfully(virCgroupPtr group)
|
||||
if (ret <= 0)
|
||||
break;
|
||||
|
||||
usleep(200 * 1000);
|
||||
g_usleep(200 * 1000);
|
||||
}
|
||||
VIR_DEBUG("Complete %d", ret);
|
||||
return ret;
|
||||
|
@ -4387,7 +4387,7 @@ virFileWaitForExists(const char *path,
|
||||
if (tries == 0 || errno != ENOENT)
|
||||
return -1;
|
||||
|
||||
usleep(ms * 1000);
|
||||
g_usleep(ms * 1000);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -2304,7 +2304,7 @@ virNetDevSetNetConfig(const char *linkdev, int vf,
|
||||
* wait, then upcoming operations on the VF may fail.
|
||||
*/
|
||||
while (retries-- > 0 && !virNetDevExists(linkdev))
|
||||
usleep(1000);
|
||||
g_usleep(1000);
|
||||
}
|
||||
|
||||
if (pfDevOrig && setMACrc == 0) {
|
||||
|
@ -465,7 +465,7 @@ virNetDevIPWaitDadFinish(virSocketAddrPtr *addrs, size_t count)
|
||||
/* Parse response. */
|
||||
dad = virNetDevIPParseDadStatus(resp, recvbuflen, addrs, count);
|
||||
if (dad)
|
||||
usleep(1000 * 10);
|
||||
g_usleep(1000 * 10);
|
||||
}
|
||||
/* Check timeout. */
|
||||
if (dad) {
|
||||
|
@ -404,7 +404,7 @@ virNetDevMacVLanTapOpen(const char *ifname,
|
||||
tapfd[i] = fd;
|
||||
} else if (retries-- > 0) {
|
||||
/* may need to wait for udev to be done */
|
||||
usleep(20000);
|
||||
g_usleep(20000);
|
||||
} else {
|
||||
/* However, if haven't succeeded, quit. */
|
||||
virReportSystemError(errno,
|
||||
|
@ -999,7 +999,7 @@ virNetDevVPortProfileOpCommon(const char *ifname, int ifindex,
|
||||
break;
|
||||
}
|
||||
|
||||
usleep(STATUS_POLL_INTERVL_USEC);
|
||||
g_usleep(STATUS_POLL_INTERVL_USEC);
|
||||
}
|
||||
|
||||
if (status == PORT_PROFILE_RESPONSE_INPROGRESS) {
|
||||
|
@ -833,11 +833,11 @@ virPCIDeviceTrySecondaryBusReset(virPCIDevicePtr dev,
|
||||
virPCIDeviceWrite16(parent, parentfd, PCI_BRIDGE_CONTROL,
|
||||
ctl | PCI_BRIDGE_CTL_RESET);
|
||||
|
||||
usleep(200 * 1000); /* sleep 200ms */
|
||||
g_usleep(200 * 1000); /* sleep 200ms */
|
||||
|
||||
virPCIDeviceWrite16(parent, parentfd, PCI_BRIDGE_CONTROL, ctl);
|
||||
|
||||
usleep(200 * 1000); /* sleep 200ms */
|
||||
g_usleep(200 * 1000); /* sleep 200ms */
|
||||
|
||||
if (virPCIDeviceWrite(dev, cfgfd, 0, config_space, PCI_CONF_LEN) < 0) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
@ -881,12 +881,12 @@ virPCIDeviceTryPowerManagementReset(virPCIDevicePtr dev, int cfgfd)
|
||||
virPCIDeviceWrite32(dev, cfgfd, dev->pci_pm_cap_pos + PCI_PM_CTRL,
|
||||
ctl | PCI_PM_CTRL_STATE_D3hot);
|
||||
|
||||
usleep(10 * 1000); /* sleep 10ms */
|
||||
g_usleep(10 * 1000); /* sleep 10ms */
|
||||
|
||||
virPCIDeviceWrite32(dev, cfgfd, dev->pci_pm_cap_pos + PCI_PM_CTRL,
|
||||
ctl | PCI_PM_CTRL_STATE_D0);
|
||||
|
||||
usleep(10 * 1000); /* sleep 10ms */
|
||||
g_usleep(10 * 1000); /* sleep 10ms */
|
||||
|
||||
if (virPCIDeviceWrite(dev, cfgfd, 0, &config_space[0], PCI_CONF_LEN) < 0) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
|
@ -177,7 +177,7 @@ virProcessAbort(pid_t pid)
|
||||
} else if (ret == 0) {
|
||||
VIR_DEBUG("trying SIGTERM to child process %d", pid);
|
||||
kill(pid, SIGTERM);
|
||||
usleep(10 * 1000);
|
||||
g_usleep(10 * 1000);
|
||||
while ((ret = waitpid(pid, &status, WNOHANG)) == -1 &&
|
||||
errno == EINTR);
|
||||
if (ret == pid) {
|
||||
@ -399,7 +399,7 @@ virProcessKillPainfullyDelay(pid_t pid, bool force, unsigned int extradelay)
|
||||
goto cleanup; /* process is dead */
|
||||
}
|
||||
|
||||
usleep(200 * 1000);
|
||||
g_usleep(200 * 1000);
|
||||
}
|
||||
|
||||
virReportSystemError(EBUSY,
|
||||
|
@ -448,6 +448,6 @@ virTimeBackOffWait(virTimeBackOffVar *var)
|
||||
|
||||
VIR_DEBUG("sleeping for %llu ms", next);
|
||||
|
||||
usleep(next * 1000);
|
||||
g_usleep(next * 1000);
|
||||
return 1;
|
||||
}
|
||||
|
@ -7932,7 +7932,7 @@ vboxDomainSendKey(virDomainPtr dom,
|
||||
/* since VBOX does not support holdtime, simulate it by sleeping and
|
||||
then sending the release key scancodes */
|
||||
if (holdtime > 0)
|
||||
usleep(holdtime * 1000);
|
||||
g_usleep(holdtime * 1000);
|
||||
|
||||
rc = gVBoxAPI.UIKeyboard.PutScancodes(keyboard, nkeycodes, keyUpCodes,
|
||||
&codesStored);
|
||||
|
@ -262,7 +262,7 @@ static int test4(const void *unused ATTRIBUTE_UNUSED)
|
||||
goto cleanup;
|
||||
}
|
||||
while (kill(pid, 0) != -1)
|
||||
usleep(100*1000);
|
||||
g_usleep(100*1000);
|
||||
|
||||
ret = checkoutput("test4", NULL);
|
||||
|
||||
@ -751,7 +751,7 @@ static int test18(const void *unused ATTRIBUTE_UNUSED)
|
||||
}
|
||||
|
||||
while (kill(pid, SIGINT) != -1)
|
||||
usleep(100*1000);
|
||||
g_usleep(100*1000);
|
||||
|
||||
ret = 0;
|
||||
|
||||
@ -1052,7 +1052,7 @@ static int test25(const void *unused ATTRIBUTE_UNUSED)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
usleep(10 * 1000);
|
||||
g_usleep(10 * 1000);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
|
@ -382,7 +382,7 @@ mymain(void)
|
||||
startJob();
|
||||
pthread_mutex_unlock(&eventThreadMutex);
|
||||
sched_yield();
|
||||
usleep(100 * 1000);
|
||||
g_usleep(100 * 1000);
|
||||
pthread_mutex_lock(&eventThreadMutex);
|
||||
virEventPollRemoveHandle(handles[1].watch);
|
||||
if (finishJob("Interrupted during poll", -1, -1) != EXIT_SUCCESS)
|
||||
@ -448,7 +448,7 @@ mymain(void)
|
||||
startJob();
|
||||
pthread_mutex_unlock(&eventThreadMutex);
|
||||
sched_yield();
|
||||
usleep(100 * 1000);
|
||||
g_usleep(100 * 1000);
|
||||
pthread_mutex_lock(&eventThreadMutex);
|
||||
virEventPollRemoveTimeout(timers[1].timer);
|
||||
if (finishJob("Interrupted during poll", -1, -1) != EXIT_SUCCESS)
|
||||
|
@ -101,7 +101,7 @@ static int testFDStreamReadCommon(const char *scratchdir, bool blocking)
|
||||
got = st->driver->streamRecv(st, buf + offset, want);
|
||||
if (got < 0) {
|
||||
if (got == -2 && !blocking) {
|
||||
usleep(20 * 1000);
|
||||
g_usleep(20 * 1000);
|
||||
goto reread;
|
||||
}
|
||||
virFilePrintf(stderr, "Failed to read stream: %s\n",
|
||||
@ -222,7 +222,7 @@ static int testFDStreamWriteCommon(const char *scratchdir, bool blocking)
|
||||
got = st->driver->streamSend(st, pattern + offset, want);
|
||||
if (got < 0) {
|
||||
if (got == -2 && !blocking) {
|
||||
usleep(20 * 1000);
|
||||
g_usleep(20 * 1000);
|
||||
goto rewrite;
|
||||
}
|
||||
if (i == 9 &&
|
||||
|
@ -1945,7 +1945,7 @@ virshBlockJobWait(virshBlockJobWaitDataPtr data)
|
||||
break;
|
||||
}
|
||||
|
||||
usleep(500 * 1000);
|
||||
g_usleep(500 * 1000);
|
||||
}
|
||||
|
||||
/* print 100% completed */
|
||||
|
Loading…
Reference in New Issue
Block a user