diff --git a/worker/worker.go b/worker/worker.go index 4d5fa7b..f4d926e 100644 --- a/worker/worker.go +++ b/worker/worker.go @@ -22,6 +22,7 @@ type Worker struct { funcs jobFuncs in chan *inPack running bool + ready bool Id string ErrorHandler ErrorHandler @@ -174,12 +175,17 @@ func (worker *Worker) Ready() (err error) { for funcname, f := range worker.funcs { worker.addFunc(funcname, f.timeout) } + worker.ready = true return } // Main loop, block here // Most of time, this should be evaluated in goroutine. func (worker *Worker) Work() { + if ! worker.ready { + panic( "worker: Work() called before Ready()") + } + defer func() { for _, a := range worker.agents { a.Close()