避免内存逃逸

减少gc压力
This commit is contained in:
colin
2022-10-28 17:03:18 +08:00
parent b32b64c8a7
commit 52650e666b

View File

@@ -27,24 +27,24 @@ type BasicEvent struct {
}
// NewBasic new a basic event instance
func NewBasic(name string, data M) *BasicEvent {
func NewBasic(name string, data M) BasicEvent {
if data == nil {
data = make(map[string]interface{})
}
return &BasicEvent{
return BasicEvent{
name: name,
data: data,
}
}
// Abort event loop exec
func (e *BasicEvent) Abort(abort bool) {
func (e BasicEvent) Abort(abort bool) {
e.aborted = abort
}
// Fill event data
func (e *BasicEvent) Fill(target interface{}, data M) *BasicEvent {
func (e BasicEvent) Fill(target interface{}, data M) BasicEvent {
if data != nil {
e.data = data
}
@@ -54,12 +54,12 @@ func (e *BasicEvent) Fill(target interface{}, data M) *BasicEvent {
}
// AttachTo add current event to the event manager.
func (e *BasicEvent) AttachTo(em ManagerFace) {
func (e BasicEvent) AttachTo(em ManagerFace) {
em.AddEvent(e)
}
// Get data by index
func (e *BasicEvent) Get(key string) interface{} {
func (e BasicEvent) Get(key string) interface{} {
if v, ok := e.data[key]; ok {
return v
}
@@ -68,14 +68,14 @@ func (e *BasicEvent) Get(key string) interface{} {
}
// Add value by key
func (e *BasicEvent) Add(key string, val interface{}) {
func (e BasicEvent) Add(key string, val interface{}) {
if _, ok := e.data[key]; !ok {
e.Set(key, val)
}
}
// Set value by key
func (e *BasicEvent) Set(key string, val interface{}) {
func (e BasicEvent) Set(key string, val interface{}) {
if e.data == nil {
e.data = make(map[string]interface{})
}
@@ -84,33 +84,33 @@ func (e *BasicEvent) Set(key string, val interface{}) {
}
// Name get event name
func (e *BasicEvent) Name() string {
func (e BasicEvent) Name() string {
return e.name
}
// Data get all data
func (e *BasicEvent) Data() map[string]interface{} {
func (e BasicEvent) Data() map[string]interface{} {
return e.data
}
// IsAborted check.
func (e *BasicEvent) IsAborted() bool {
func (e BasicEvent) IsAborted() bool {
return e.aborted
}
// Target get target
func (e *BasicEvent) Target() interface{} {
func (e BasicEvent) Target() interface{} {
return e.target
}
// SetName set event name
func (e *BasicEvent) SetName(name string) *BasicEvent {
func (e BasicEvent) SetName(name string) BasicEvent {
e.name = name
return e
}
// SetData set data to the event
func (e *BasicEvent) SetData(data M) Event {
func (e BasicEvent) SetData(data M) Event {
if data != nil {
e.data = data
}
@@ -118,7 +118,7 @@ func (e *BasicEvent) SetData(data M) Event {
}
// SetTarget set event target
func (e *BasicEvent) SetTarget(target interface{}) *BasicEvent {
func (e BasicEvent) SetTarget(target interface{}) BasicEvent {
e.target = target
return e
}