runnerDelegate = NewAuctionRunnerDelegate(cells) metricEmitterDelegate := NewAuctionMetricEmitterDelegate() runner = auctionrunner.New( runnerDelegate, metricEmitterDelegate, clock.NewClock(), workPool, logger, ) runnerProcess = ifrit.Invoke(runner) }) var _ = AfterEach(func() { runnerProcess.Signal(os.Interrupt) Eventually(runnerProcess.Wait(), 20).Should(Receive()) workPool.Stop() }) var _ = AfterSuite(func() { if !disableSVGReport { finishReport() } for _, sess := range sessionsToTerminate { sess.Kill().Wait() } }) func cellGuid(index int) string { return fmt.Sprintf("REP-%d", index+1) }
package workpool_test import ( "github.com/cloudfoundry/gunk/workpool" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("WorkPool", func() { var pool *workpool.WorkPool AfterEach(func() { if pool != nil { pool.Stop() } }) Context("when max workers is non-positive", func() { It("errors", func() { _, err := workpool.NewWorkPool(0) Expect(err).To(HaveOccurred()) }) }) Context("when max workers is positive", func() { var maxWorkers int var calledChan chan int var unblockChan chan struct{} var work func(int) func()