优化备份对象的回收

This commit is contained in:
hahwu 2026-03-25 11:42:19 +08:00
parent 1b54ab5f43
commit 5a04b66a1c
3 changed files with 8 additions and 3 deletions

View File

@ -215,6 +215,7 @@ func HandleClientReq(args []interface{}) {
}
p.(*Player).Recover(backup) //还原Player的数据
}
backup.Reclaim() // 回收备份对象
p.(*Player).lock.Unlock() //解锁
}()
p.(*Player).args = make(map[string]interface{})

View File

@ -38,7 +38,8 @@ func (p *Player) HandleMsg(m *msg.Msg) {
log.Error("Handle msg uid : %d, msg : %v, fatal : %s", p.M_DwUin, m, r)
p.Recover(backup) //还原Player的数据
}
p.lock.Unlock() //解锁
backup.Reclaim() // 回收备份对象
p.lock.Unlock() //解锁
}()
p.args = make(map[string]interface{})
err := p.handle(m)

View File

@ -93,6 +93,11 @@ func (pd *PlayerBackUp) Reset() {
pd.PlayMod = nil
}
func (pd *PlayerBackUp) Reclaim() {
pd.Reset()
playerDataPool.Put(pd)
}
func (p *Player) Stop() {
p.wg.Wait()
p.signalDispatcherStop()
@ -223,8 +228,6 @@ func (p *Player) Recover(backUp *PlayerBackUp) {
// p.GetPlayerBaseMod().Data = backUp.Data
p.PlayMod.Recover(backUp)
p.Msg = make([]PlayerMsg, 0)
backUp.Reset()
playerDataPool.Put(backUp)
}
func (p *Player) InitPlayer(UserName string) error {