MCPcopy Create free account
hub / github.com/Cyinx/einx / NewTimerManager

Function NewTimerManager

timer/timer_manager.go:21–48  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

19}
20
21func NewTimerManager() *TimerManager {
22
23 m := &TimerManager{
24 seqIDIndex: 0,
25 pool: newTimerPool(),
26 }
27
28 now := UnixTS()
29
30 timer_wheels := &m.timer_wheels
31
32 timer_wheels[0] = newTimerWheel(1, 0, now, m.pool)
33 timer_wheels[1] = newTimerWheel(0xff+1, 8, now, m.pool)
34 timer_wheels[2] = newTimerWheel(0xffff+1, 16, now, m.pool)
35 timer_wheels[3] = newTimerWheel(0xffffff+1, 24, now, m.pool)
36 timer_wheels[4] = newTimerWheel(0xffffffff+1, 32, now, m.pool)
37
38 timer_wheels[0].next_wheel = timer_wheels[1]
39 timer_wheels[1].prev_wheel = timer_wheels[0]
40 timer_wheels[1].next_wheel = timer_wheels[2]
41 timer_wheels[2].prev_wheel = timer_wheels[1]
42 timer_wheels[2].next_wheel = timer_wheels[3]
43 timer_wheels[3].prev_wheel = timer_wheels[2]
44 timer_wheels[3].next_wheel = timer_wheels[4]
45 timer_wheels[4].prev_wheel = timer_wheels[3]
46
47 return m
48}
49
50func (this *TimerManager) GetSeqID() uint32 {
51 this.seqIDIndex++

Callers

nothing calls this directly

Calls 3

newTimerPoolFunction · 0.85
UnixTSFunction · 0.85
newTimerWheelFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…