func (e *Sum) OnB(param execute.ThreadParam) { e.lock.Lock() var bag *execute.AsyncBag = e.params[param.ID] if bag == nil { bag = new(execute.AsyncBag) bag.Init(2, e, e) e.params[param.ID] = bag } e.lock.Unlock() fired := bag.AddValue("B", param) if fired { e.lock.Lock() delete(e.params, param.ID) e.lock.Unlock() } }
func (e *TypeIISConstructAssembly) OnVectorConc(param execute.ThreadParam) { e.lock.Lock() var bag *execute.AsyncBag = e.params[param.ID] if bag == nil { bag = new(execute.AsyncBag) bag.Init(17, e, e) e.params[param.ID] = bag } e.lock.Unlock() fired := bag.AddValue("VectorConc", param) if fired { e.lock.Lock() delete(e.params, param.ID) e.lock.Unlock() } }