MCPcopy
hub / github.com/davyxu/cellnet / StartLoop

Method StartLoop

queue.go:78–111  ·  view source on GitHub ↗

开启事件循环

()

Source from the content-addressed store, hash-verified

76
77// 开启事件循环
78func (self *eventQueue) StartLoop() EventQueue {
79
80 self.endSignal.Add(1)
81
82 go func() {
83
84 var writeList []interface{}
85
86 for {
87 writeList = writeList[0:0]
88 exit := self.Pick(&writeList)
89
90 // 遍历要发送的数据
91 for _, msg := range writeList {
92 switch t := msg.(type) {
93 case func():
94 self.protectedCall(t)
95 case nil:
96 break
97 default:
98 log.Printf("unexpected type %T", t)
99 }
100 }
101
102 if exit {
103 break
104 }
105 }
106
107 self.endSignal.Done()
108 }()
109
110 return self
111}
112
113// 停止事件循环
114func (self *eventQueue) StopLoop() EventQueue {

Callers

nothing calls this directly

Calls 4

protectedCallMethod · 0.95
PickMethod · 0.80
DoneMethod · 0.80
AddMethod · 0.65

Tested by

no test coverage detected