aboutsummaryrefslogtreecommitdiffstats
path: root/src/prof.c
diff options
context:
space:
mode:
authorJason Evans <jasone@canonware.com>2016-02-20 23:46:14 -0800
committerJason Evans <jasone@canonware.com>2016-02-20 23:46:14 -0800
commit788d29d397574396c4c93bf1f90da59dd7efc5cc (patch)
tree8ebb1340f87fd492cc97428980434b97aee2057a /src/prof.c
parentfd9cd7a6cc575cab43e22f989c6709ffe0da451f (diff)
downloadplatform_external_jemalloc_new-788d29d397574396c4c93bf1f90da59dd7efc5cc.tar.gz
platform_external_jemalloc_new-788d29d397574396c4c93bf1f90da59dd7efc5cc.tar.bz2
platform_external_jemalloc_new-788d29d397574396c4c93bf1f90da59dd7efc5cc.zip
Fix Windows-specific prof-related compilation portability issues.
Diffstat (limited to 'src/prof.c')
-rw-r--r--src/prof.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/prof.c b/src/prof.c
index 3abb38e2..173da69f 100644
--- a/src/prof.c
+++ b/src/prof.c
@@ -1359,6 +1359,7 @@ label_return:
return (ret);
}
+#ifndef _WIN32
JEMALLOC_FORMAT_PRINTF(1, 2)
static int
prof_open_maps(const char *format, ...)
@@ -1374,6 +1375,18 @@ prof_open_maps(const char *format, ...)
return (mfd);
}
+#endif
+
+static int
+prof_getpid(void)
+{
+
+#ifdef _WIN32
+ return (GetCurrentProcessId());
+#else
+ return (getpid());
+#endif
+}
static bool
prof_dump_maps(bool propagate_err)
@@ -1388,7 +1401,7 @@ prof_dump_maps(bool propagate_err)
mfd = -1; // Not implemented
#else
{
- int pid = getpid();
+ int pid = prof_getpid();
mfd = prof_open_maps("/proc/%d/task/%d/maps", pid, pid);
if (mfd == -1)
@@ -1557,12 +1570,12 @@ prof_dump_filename(char *filename, char v, uint64_t vseq)
/* "<prefix>.<pid>.<seq>.v<vseq>.heap" */
malloc_snprintf(filename, DUMP_FILENAME_BUFSIZE,
"%s.%d.%"FMTu64".%c%"FMTu64".heap",
- opt_prof_prefix, (int)getpid(), prof_dump_seq, v, vseq);
+ opt_prof_prefix, prof_getpid(), prof_dump_seq, v, vseq);
} else {
/* "<prefix>.<pid>.<seq>.<v>.heap" */
malloc_snprintf(filename, DUMP_FILENAME_BUFSIZE,
"%s.%d.%"FMTu64".%c.heap",
- opt_prof_prefix, (int)getpid(), prof_dump_seq, v);
+ opt_prof_prefix, prof_getpid(), prof_dump_seq, v);
}
prof_dump_seq++;
}