summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoralkondratenko@gmail.com <alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>2013-07-30 08:30:19 +0000
committeralkondratenko@gmail.com <alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>2013-07-30 08:30:19 +0000
commitc583a5babb54aedf6ab6e7746fd976ef2469839d (patch)
tree97c0ebf21edf6aa79d04846078122b2b5f4dba4d
parent1af20041bf5821167e69bf905596b2d45d1d94da (diff)
downloadgperftools-c583a5babb54aedf6ab6e7746fd976ef2469839d.tar.gz
issue-559: don't depend on sighandler_t
Which is not available on OSX. I've also fixed style around this place. git-svn-id: http://gperftools.googlecode.com/svn/trunk@234 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
-rw-r--r--src/profiler.cc27
1 files changed, 8 insertions, 19 deletions
diff --git a/src/profiler.cc b/src/profiler.cc
index ccbeeff..a9442dc 100644
--- a/src/profiler.cc
+++ b/src/profiler.cc
@@ -202,30 +202,19 @@ CpuProfiler::CpuProfiler()
#endif
char *signal_number_str = getenv("CPUPROFILESIGNAL");
- if (signal_number_str != NULL)
- {
+ if (signal_number_str != NULL) {
long int signal_number = strtol(signal_number_str, NULL, 10);
- printf("<debug> signal_number=%ld\n", signal_number);
- if (signal_number >=1 && signal_number <=64)
- {
- sighandler_t old_signal_handler = signal(signal_number, CpuProfilerSwitch);
- if (old_signal_handler == NULL)
- {
+ if (signal_number >= 1 && signal_number <= 64) {
+ void *old_signal_handler = reinterpret_cast<void *>(signal(signal_number, CpuProfilerSwitch));
+ if (old_signal_handler == NULL) {
RAW_LOG(INFO,"Using signal %d as cpu profiling switch", signal_number);
-
- }
- else
- {
+ } else {
RAW_LOG(FATAL, "Signal %d already in use\n", signal_number);
}
- }
- else
- {
+ } else {
RAW_LOG(FATAL, "Signal number %s is invalid\n", signal_number_str);
- }
- }
- else
- {
+ }
+ } else {
char fname[PATH_MAX];
if (!GetUniquePathFromEnv("CPUPROFILE", fname)) {
if (!FLAGS_cpu_profiler_unittest) {