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(5), atomic.LoadInt32(&startedCount))
|
||||||
assertEqual(t, int32(4), atomic.LoadInt32(&doneCount))
|
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
|
// 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.
|
// returns a non-nil error or the first time Wait returns, whichever occurs first.
|
||||||
func (p *WorkerPool) GroupContext(ctx context.Context) (*TaskGroupWithContext, context.Context) {
|
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)
|
ctx, cancel := context.WithCancel(ctx)
|
||||||
return &TaskGroupWithContext{
|
return &TaskGroupWithContext{
|
||||||
TaskGroup: TaskGroup{
|
TaskGroup: TaskGroup{
|
||||||
|
|||||||
Reference in New Issue
Block a user