From 73b4212fc4e17f8f61adc892f975f8df6fa605b5 Mon Sep 17 00:00:00 2001 From: Ambal Date: Wed, 13 May 2009 16:18:33 +0400 Subject: [PATCH] [7816] ACE thread priority values verification. Signed-off-by: AlexDereka --- src/shared/Threading.cpp | 53 +++++++++++++++++++++++++----------------------- src/shared/revision_nr.h | 2 +- 2 files changed, 29 insertions(+), 26 deletions(-) diff --git a/src/shared/Threading.cpp b/src/shared/Threading.cpp index b2c88a2c2..496e86353 100644 --- a/src/shared/Threading.cpp +++ b/src/shared/Threading.cpp @@ -44,40 +44,43 @@ ThreadPriority::ThreadPriority() ASSERT (!_tmp.empty()); - const size_t max_pos = _tmp.size(); - size_t min_pos = 1; - size_t norm_pos = 0; - for (size_t i = 0; i < max_pos; ++i) + if(_tmp.size() >= MAXPRIORITYNUM) { - if(_tmp[i] == ACE_THR_PRI_OTHER_DEF) + const size_t max_pos = _tmp.size(); + size_t min_pos = 1; + size_t norm_pos = 0; + for (size_t i = 0; i < max_pos; ++i) { - norm_pos = i + 1; - break; + if(_tmp[i] == ACE_THR_PRI_OTHER_DEF) + { + norm_pos = i + 1; + break; + } } - } - //since we have only 7(seven) values in enum Priority - //and 3 we know already (Idle, Normal, Realtime) so - //we need to split each list [Idle...Normal] and [Normal...Realtime] - //into ¹ piesces - const size_t _divider = 4; - size_t _div = (norm_pos - min_pos) / _divider; - if(_div == 0) - _div = 1; + //since we have only 7(seven) values in enum Priority + //and 3 we know already (Idle, Normal, Realtime) so + //we need to split each list [Idle...Normal] and [Normal...Realtime] + //into ¹ piesces + const size_t _divider = 4; + size_t _div = (norm_pos - min_pos) / _divider; + if(_div == 0) + _div = 1; - min_pos = (norm_pos - 1); + min_pos = (norm_pos - 1); - m_priority[Low] = _tmp[min_pos -= _div]; - m_priority[Lowest] = _tmp[min_pos -= _div ]; + m_priority[Low] = _tmp[min_pos -= _div]; + m_priority[Lowest] = _tmp[min_pos -= _div ]; - _div = (max_pos - norm_pos) / _divider; - if(_div == 0) - _div = 1; + _div = (max_pos - norm_pos) / _divider; + if(_div == 0) + _div = 1; - min_pos = norm_pos - 1; + min_pos = norm_pos - 1; - m_priority[High] = _tmp[min_pos += _div]; - m_priority[Highest] = _tmp[min_pos += _div]; + m_priority[High] = _tmp[min_pos += _div]; + m_priority[Highest] = _tmp[min_pos += _div]; + } } int ThreadPriority::getPriority(Priority p) const diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index c238d1de3..b99ce9005 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "7815" + #define REVISION_NR "7816" #endif // __REVISION_NR_H__ -- 2.11.4.GIT