From e3622d446e5ae4d103fd15753c93472d8c9ff1ff Mon Sep 17 00:00:00 2001 From: winlin Date: Fri, 22 May 2015 17:08:26 +0800 Subject: [PATCH] fix #397, the USER_HZ maybe not 100. 1.0.32 --- README.md | 1 + trunk/src/app/srs_app_utility.cpp | 16 +++++++--------- trunk/src/core/srs_core.hpp | 2 +- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index c70a13afed..f0f27482ee 100755 --- a/README.md +++ b/README.md @@ -387,6 +387,7 @@ Supported operating systems and hardware: ## History +* v1.0, 2015-05-22, fix [#397](https://github.com/simple-rtmp-server/srs/issues/397) the USER_HZ maybe not 100. 1.0.32 * v1.0, 2015-03-26, fix hls aac adts bug, in aac mux. 1.0.31. * v1.0, 2015-03-19, [1.0r3 release(1.0.30)](https://github.com/simple-rtmp-server/srs/releases/tag/1.0r3) released. 59511 lines. * v1.0, 2015-03-17, remove the osx for 1.0.30. diff --git a/trunk/src/app/srs_app_utility.cpp b/trunk/src/app/srs_app_utility.cpp index e164b2d003..42fdfcc4f7 100644 --- a/trunk/src/app/srs_app_utility.cpp +++ b/trunk/src/app/srs_app_utility.cpp @@ -292,15 +292,13 @@ bool get_proc_self_stat(SrsProcSelfStat& r) void srs_update_proc_stat() { - // always assert the USER_HZ is 1/100ths // @see: http://stackoverflow.com/questions/7298646/calculating-user-nice-sys-idle-iowait-irq-and-sirq-from-proc-stat/7298711 - static bool user_hz_assert = false; - if (!user_hz_assert) { - user_hz_assert = true; - - int USER_HZ = sysconf(_SC_CLK_TCK); - srs_trace("USER_HZ=%d", USER_HZ); - srs_assert(USER_HZ == 100); + // @see https://github.com/simple-rtmp-server/srs/issues/397 + static int user_hz = 0; + if (user_hz <= 0) { + user_hz = sysconf(_SC_CLK_TCK); + srs_trace("USER_HZ=%d", user_hz); + srs_assert(user_hz > 0); } // system cpu stat @@ -345,7 +343,7 @@ void srs_update_proc_stat() int64_t total = r.sample_time - o.sample_time; int64_t usage = (r.utime + r.stime) - (o.utime + o.stime); if (total > 0) { - r.percent = (float)(usage * 1000 / (double)total / 100); + r.percent = (float)(usage * 1000 / (double)total / user_hz); } // upate cache. diff --git a/trunk/src/core/srs_core.hpp b/trunk/src/core/srs_core.hpp index 2a42f58f77..3e28ea7b62 100644 --- a/trunk/src/core/srs_core.hpp +++ b/trunk/src/core/srs_core.hpp @@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // current release version #define VERSION_MAJOR 1 #define VERSION_MINOR 0 -#define VERSION_REVISION 31 +#define VERSION_REVISION 32 // server info. #define RTMP_SIG_SRS_KEY "SRS"