Example #1
0
//释放一个具体对象,如果池中有空间,则回收,如果空闲的超过一定数量,则不回收,直接删除
func (p *Pool) Free(e datatype.Entityer) {
	if l, exist := p.pool[e.ObjTypeName()]; exist {
		if l.Len() <= MAX_POOL_FREE {
			e.Reset()
			l.PushBack(e)
		}
	} else {
		l := list.New()
		e.Reset()
		l.PushBack(e)
		p.pool[e.ObjTypeName()] = l
	}
}