@@ -18,27 +18,29 @@ using namespace trantor;
18
18
19
19
TimingWheel::TimingWheel (trantor::EventLoop *loop,
20
20
size_t maxTimeout,
21
- float tickInterval ,
21
+ float ticksInterval ,
22
22
size_t bucketsNumPerWheel)
23
23
: loop_(loop),
24
- tickInterval_(tickInterval ),
24
+ ticksInterval_(ticksInterval ),
25
25
bucketsNumPerWheel_(bucketsNumPerWheel)
26
26
{
27
27
assert (maxTimeout > 1 );
28
- assert (tickInterval > 0 );
29
- size_t maxTickNum = maxTimeout / tickInterval;
28
+ assert (ticksInterval > 0 );
29
+ assert (bucketsNumPerWheel_ > 1 );
30
+ size_t maxTickNum = maxTimeout / ticksInterval;
31
+ auto ticksNum = bucketsNumPerWheel;
30
32
wheelsNum_ = 1 ;
31
- while (maxTickNum > bucketsNumPerWheel_ )
33
+ while (maxTickNum > ticksNum )
32
34
{
33
35
++wheelsNum_;
34
- maxTickNum = maxTickNum / bucketsNumPerWheel_;
36
+ ticksNum *= bucketsNumPerWheel_;
35
37
}
36
38
wheels_.resize (wheelsNum_);
37
39
for (size_t i = 0 ; i < wheelsNum_; ++i)
38
40
{
39
41
wheels_[i].resize (bucketsNumPerWheel_);
40
42
}
41
- timerId_ = loop_->runEvery (tickInterval_ , [=]() {
43
+ timerId_ = loop_->runEvery (ticksInterval_ , [=]() {
42
44
++ticksCounter_;
43
45
size_t t = ticksCounter_;
44
46
size_t pow = 1 ;
@@ -90,10 +92,9 @@ void TimingWheel::insertEntry(size_t delay, EntryPtr entryPtr)
90
92
91
93
void TimingWheel::insertEntryInloop (size_t delay, EntryPtr entryPtr)
92
94
{
93
- // protected by bucketMutex;
94
95
loop_->assertInLoopThread ();
95
96
96
- delay = delay / tickInterval_ + 1 ;
97
+ delay = delay / ticksInterval_ + 1 ;
97
98
size_t t = ticksCounter_;
98
99
for (size_t i = 0 ; i < wheelsNum_; ++i)
99
100
{
0 commit comments