MCPcopy Index your code
hub / github.com/fogleman/primitive / runWorkers

Method runWorkers

primitive/model.go:147–170  ·  view source on GitHub ↗
(t ShapeType, a, n, age, m int)

Source from the content-addressed store, hash-verified

145}
146
147func (model *Model) runWorkers(t ShapeType, a, n, age, m int) *State {
148 wn := len(model.Workers)
149 ch := make(chan *State, wn)
150 wm := m / wn
151 if m%wn != 0 {
152 wm++
153 }
154 for i := 0; i < wn; i++ {
155 worker := model.Workers[i]
156 worker.Init(model.Current, model.Score)
157 go model.runWorker(worker, t, a, n, age, wm, ch)
158 }
159 var bestEnergy float64
160 var bestState *State
161 for i := 0; i < wn; i++ {
162 state := <-ch
163 energy := state.Energy()
164 if i == 0 || energy < bestEnergy {
165 bestEnergy = energy
166 bestState = state
167 }
168 }
169 return bestState
170}
171
172func (model *Model) runWorker(worker *Worker, t ShapeType, a, n, age, m int, ch chan *State) {
173 ch <- worker.BestHillClimbState(t, a, n, age, m)

Callers 1

StepMethod · 0.95

Calls 3

runWorkerMethod · 0.95
InitMethod · 0.80
EnergyMethod · 0.65

Tested by

no test coverage detected