functions: fix goroutine leak in runner (#394)

* functions: fix goroutine leak in runner

* functions: ensure taskQueue is consumed after context cancellation
This commit is contained in:
C Cirello
2016-12-06 16:11:06 +01:00
committed by GitHub
parent f0fc85b85a
commit 0cdd1db3e1
9 changed files with 122 additions and 67 deletions

View File

@@ -14,13 +14,14 @@ import (
func TestRunnerHello(t *testing.T) {
buf := setLogBuffer()
runner, err := New(NewFuncLogger(), NewMetricLogger())
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
runner, err := New(ctx, NewFuncLogger(), NewMetricLogger())
if err != nil {
t.Fatalf("Test error during New() - %s", err)
}
ctx := context.Background()
for i, test := range []struct {
route *models.Route
payload string
@@ -67,13 +68,14 @@ func TestRunnerHello(t *testing.T) {
func TestRunnerError(t *testing.T) {
t.Skip()
buf := setLogBuffer()
runner, err := New(NewFuncLogger(), NewMetricLogger())
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
runner, err := New(ctx, NewFuncLogger(), NewMetricLogger())
if err != nil {
t.Fatalf("Test error during New() - %s", err)
}
ctx := context.Background()
for i, test := range []struct {
route *models.Route
payload string