From: "Daniel P. Berrange" <berrange(a)redhat.com>
virPidFileReadPathIfAlive passed in an 'int *' where a 'pid_t *'
was expected, which breaks on Mingw64 targets. Also a few places
were using '%d' for formatting pid_t, change them to '%lld' and
force a cast to the longer type as done elsewhere in the same
file.
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
src/util/virpidfile.c | 4 ++--
src/util/virprocess.c | 13 +++++++------
2 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/src/util/virpidfile.c b/src/util/virpidfile.c
index cb8a992..90a79c5 100644
--- a/src/util/virpidfile.c
+++ b/src/util/virpidfile.c
@@ -206,7 +206,7 @@ int virPidFileReadPathIfAlive(const char *path,
pid_t *pid,
const char *binPath)
{
- int ret, retPid;
+ int ret;
bool isLink;
char *procPath = NULL;
char *procLink = NULL;
@@ -215,7 +215,7 @@ int virPidFileReadPathIfAlive(const char *path,
char *resolvedProcLink = NULL;
const char deletedText[] = " (deleted)";
size_t deletedTextLen = strlen(deletedText);
-
+ pid_t retPid;
/* only set this at the very end on success */
*pid = -1;
diff --git a/src/util/virprocess.c b/src/util/virprocess.c
index 4bb7ebc..f8a8a49 100644
--- a/src/util/virprocess.c
+++ b/src/util/virprocess.c
@@ -250,7 +250,7 @@ virProcessKillPainfully(pid_t pid, bool force)
int i, ret = -1;
const char *signame = "TERM";
- VIR_DEBUG("vpid=%d force=%d", pid, force);
+ VIR_DEBUG("vpid=%lld force=%d", (long long)pid, force);
/* This loop sends SIGTERM, then waits a few iterations (10 seconds)
* to see if it dies. If the process still hasn't exited, and
@@ -265,8 +265,8 @@ virProcessKillPainfully(pid_t pid, bool force)
if (i == 0) {
signum = SIGTERM; /* kindly suggest it should exit */
} else if ((i == 50) & force) {
- VIR_DEBUG("Timed out waiting after SIGTERM to process %d, "
- "sending SIGKILL", pid);
+ VIR_DEBUG("Timed out waiting after SIGTERM to process %lld, "
+ "sending SIGKILL", (long long)pid);
/* No SIGKILL kill on Win32 ! Use SIGABRT instead which our
* virProcessKill proc will handle more or less like SIGKILL */
#ifdef WIN32
@@ -283,8 +283,8 @@ virProcessKillPainfully(pid_t pid, bool force)
if (virProcessKill(pid, signum) < 0) {
if (errno != ESRCH) {
virReportSystemError(errno,
- _("Failed to terminate process %d with
SIG%s"),
- pid, signame);
+ _("Failed to terminate process %lld with
SIG%s"),
+ (long long)pid, signame);
goto cleanup;
}
ret = signum == SIGTERM ? 0 : 1;
@@ -294,7 +294,8 @@ virProcessKillPainfully(pid_t pid, bool force)
usleep(200 * 1000);
}
- VIR_DEBUG("Timed out waiting after SIGKILL to process %d", pid);
+ VIR_DEBUG("Timed out waiting after SIGKILL to process %lld",
+ (long long)pid);
cleanup:
return ret;
--
1.7.11.7
Show replies by date
On 10/31/2012 11:02 AM, Daniel P. Berrange wrote:
From: "Daniel P. Berrange" <berrange(a)redhat.com>
virPidFileReadPathIfAlive passed in an 'int *' where a 'pid_t *'
was expected, which breaks on Mingw64 targets. Also a few places
were using '%d' for formatting pid_t, change them to '%lld' and
force a cast to the longer type as done elsewhere in the same
file.
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
src/util/virpidfile.c | 4 ++--
src/util/virprocess.c | 13 +++++++------
2 files changed, 9 insertions(+), 8 deletions(-)
ACK.
--
Eric Blake eblake(a)redhat.com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org