网络连接和同步map优化
This commit is contained in:
parent
7be8fe29fc
commit
e584d85231
|
@ -46,6 +46,7 @@ type Conn struct {
|
||||||
gn gnet.Conn
|
gn gnet.Conn
|
||||||
kcp *kcp.UDPSession
|
kcp *kcp.UDPSession
|
||||||
write func(data []byte) error
|
write func(data []byte) error
|
||||||
|
data map[any]any
|
||||||
}
|
}
|
||||||
|
|
||||||
// Write 向连接中写入数据
|
// Write 向连接中写入数据
|
||||||
|
@ -64,3 +65,23 @@ func (slf *Conn) Close() {
|
||||||
}
|
}
|
||||||
slf.write = nil
|
slf.write = nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (slf *Conn) SetData(key, value any) *Conn {
|
||||||
|
if slf.data == nil {
|
||||||
|
slf.data = map[any]any{}
|
||||||
|
}
|
||||||
|
slf.data[key] = value
|
||||||
|
return slf
|
||||||
|
}
|
||||||
|
|
||||||
|
func (slf *Conn) GetData(key any) any {
|
||||||
|
return slf.data[key]
|
||||||
|
}
|
||||||
|
|
||||||
|
func (slf *Conn) ReleaseData() *Conn {
|
||||||
|
for k := range slf.data {
|
||||||
|
delete(slf.data, k)
|
||||||
|
}
|
||||||
|
slf.data = nil
|
||||||
|
return slf
|
||||||
|
}
|
||||||
|
|
|
@ -87,6 +87,15 @@ func (slf *Map[Key, Value]) Clear() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (slf *Map[Key, Value]) ClearHandle(handle func(key Key, value Value)) {
|
||||||
|
slf.lock.Lock()
|
||||||
|
defer slf.lock.Unlock()
|
||||||
|
for k, v := range slf.data {
|
||||||
|
handle(k, v)
|
||||||
|
delete(slf.data, k)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (slf *Map[Key, Value]) Range(handle func(key Key, value Value)) {
|
func (slf *Map[Key, Value]) Range(handle func(key Key, value Value)) {
|
||||||
slf.lock.RLock()
|
slf.lock.RLock()
|
||||||
defer slf.lock.RUnlock()
|
defer slf.lock.RUnlock()
|
||||||
|
|
Loading…
Reference in New Issue