diff options
author | alkondratenko@gmail.com <alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50> | 2013-07-30 08:30:19 +0000 |
---|---|---|
committer | alkondratenko@gmail.com <alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50> | 2013-07-30 08:30:19 +0000 |
commit | c583a5babb54aedf6ab6e7746fd976ef2469839d (patch) | |
tree | 97c0ebf21edf6aa79d04846078122b2b5f4dba4d | |
parent | 1af20041bf5821167e69bf905596b2d45d1d94da (diff) | |
download | gperftools-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.cc | 27 |
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) { |