func (wh *WorkerHelper) Done() {
	wh.wg.Done()
}
Done signals to the worker helper that this worker
is complete. This must be run in each thread if you
are calling Wait().
package parallel
import (
	"errors"
	"sync"
)
type WorkerHelper struct {
	worker *Worker
	wg     *sync.WaitGroup
}
func newWorkerHelper(w *Worker) *WorkerHelper {
	wg := &sync.WaitGroup{}
	return &WorkerHelper{worker: w, wg: wg}
}