Prevent NPE in GroupContext
This commit is contained in:
@@ -105,3 +105,18 @@ func TestGroupContextWithError(t *testing.T) {
|
||||
assertEqual(t, int32(5), atomic.LoadInt32(&startedCount))
|
||||
assertEqual(t, int32(4), atomic.LoadInt32(&doneCount))
|
||||
}
|
||||
|
||||
func TestGroupContextWithNilContext(t *testing.T) {
|
||||
|
||||
pool := pond.New(3, 100)
|
||||
|
||||
var thrownPanic interface{}
|
||||
func() {
|
||||
defer func() {
|
||||
thrownPanic = recover()
|
||||
}()
|
||||
pool.GroupContext(nil)
|
||||
}()
|
||||
|
||||
assertEqual(t, "a non-nil context needs to be specified when using GroupContext", thrownPanic)
|
||||
}
|
||||
|
||||
@@ -492,6 +492,11 @@ func (p *WorkerPool) Group() *TaskGroup {
|
||||
// The derived Context is canceled the first time a function submitted to the group
|
||||
// returns a non-nil error or the first time Wait returns, whichever occurs first.
|
||||
func (p *WorkerPool) GroupContext(ctx context.Context) (*TaskGroupWithContext, context.Context) {
|
||||
|
||||
if ctx == nil {
|
||||
panic("a non-nil context needs to be specified when using GroupContext")
|
||||
}
|
||||
|
||||
ctx, cancel := context.WithCancel(ctx)
|
||||
return &TaskGroupWithContext{
|
||||
TaskGroup: TaskGroup{
|
||||
|
||||
Reference in New Issue
Block a user