From 6682016092c735feb29021acbb8c2067fdf1a209 Mon Sep 17 00:00:00 2001 From: Aliaksey Kandratsenka Date: Sat, 12 Mar 2016 10:54:05 -0800 Subject: [PATCH] Unbreak profiling with CPUPROFILE_FREQUENCY=1 This closes ticket #777. No test sadly, since it's not trivial to unittest this case. But fix with single-shot manual testing is better than nothing. --- src/profile-handler.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/profile-handler.cc b/src/profile-handler.cc index db97345..7fdcb69 100644 --- a/src/profile-handler.cc +++ b/src/profile-handler.cc @@ -492,8 +492,10 @@ void ProfileHandler::UpdateTimer(bool enable) { timer_running_ = enable; struct itimerval timer; - timer.it_interval.tv_sec = 0; - timer.it_interval.tv_usec = (enable ? (1000000 / frequency_) : 0); + static const int kMillion = 1000000; + int interval_usec = enable ? kMillion / frequency_ : 0; + timer.it_interval.tv_sec = interval_usec / kMillion; + timer.it_interval.tv_usec = interval_usec % kMillion; timer.it_value = timer.it_interval; setitimer(timer_type_, &timer, 0); }