mirror of
https://github.com/mangosfour/server.git
synced 2025-12-18 01:37:01 +00:00
[7816] ACE thread priority values verification.
Signed-off-by: AlexDereka <dereka.alex@gmail.com>
This commit is contained in:
parent
803a815fa4
commit
ae52a1b782
2 changed files with 34 additions and 31 deletions
|
|
@ -44,40 +44,43 @@ ThreadPriority::ThreadPriority()
|
||||||
|
|
||||||
ASSERT (!_tmp.empty());
|
ASSERT (!_tmp.empty());
|
||||||
|
|
||||||
const size_t max_pos = _tmp.size();
|
if(_tmp.size() >= MAXPRIORITYNUM)
|
||||||
size_t min_pos = 1;
|
|
||||||
size_t norm_pos = 0;
|
|
||||||
for (size_t i = 0; i < max_pos; ++i)
|
|
||||||
{
|
{
|
||||||
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;
|
if(_tmp[i] == ACE_THR_PRI_OTHER_DEF)
|
||||||
break;
|
{
|
||||||
|
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;
|
||||||
|
|
||||||
|
min_pos = (norm_pos - 1);
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
min_pos = norm_pos - 1;
|
||||||
|
|
||||||
|
m_priority[High] = _tmp[min_pos += _div];
|
||||||
|
m_priority[Highest] = _tmp[min_pos += _div];
|
||||||
}
|
}
|
||||||
|
|
||||||
//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);
|
|
||||||
|
|
||||||
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;
|
|
||||||
|
|
||||||
min_pos = norm_pos - 1;
|
|
||||||
|
|
||||||
m_priority[High] = _tmp[min_pos += _div];
|
|
||||||
m_priority[Highest] = _tmp[min_pos += _div];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int ThreadPriority::getPriority(Priority p) const
|
int ThreadPriority::getPriority(Priority p) const
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "7815"
|
#define REVISION_NR "7816"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue