Merge pull request #15954 from timothysc/non-blocking-event

Events should be non-blocking.
This commit is contained in:
Filip Grzadkowski 2015-10-23 14:06:00 +02:00
commit ebee4bb357
2 changed files with 10 additions and 5 deletions

View File

@ -261,7 +261,10 @@ func (recorder *recorderImpl) generateEvent(object runtime.Object, timestamp unv
event := recorder.makeEvent(ref, reason, message) event := recorder.makeEvent(ref, reason, message)
event.Source = recorder.source event.Source = recorder.source
recorder.Action(watch.Added, event) go func() {
// NOTE: events should be a non-blocking operation
recorder.Action(watch.Added, event)
}()
} }
func (recorder *recorderImpl) Event(object runtime.Object, reason, message string) { func (recorder *recorderImpl) Event(object runtime.Object, reason, message string) {

View File

@ -20,6 +20,7 @@ import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"reflect" "reflect"
"runtime"
"strconv" "strconv"
"strings" "strings"
"testing" "testing"
@ -28,7 +29,7 @@ import (
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/errors" "k8s.io/kubernetes/pkg/api/errors"
client "k8s.io/kubernetes/pkg/client/unversioned" client "k8s.io/kubernetes/pkg/client/unversioned"
"k8s.io/kubernetes/pkg/runtime" k8sruntime "k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/util" "k8s.io/kubernetes/pkg/util"
"k8s.io/kubernetes/pkg/util/strategicpatch" "k8s.io/kubernetes/pkg/util/strategicpatch"
) )
@ -127,7 +128,7 @@ func TestEventf(t *testing.T) {
t.Fatal(err) t.Fatal(err)
} }
table := []struct { table := []struct {
obj runtime.Object obj k8sruntime.Object
reason string reason string
messageFmt string messageFmt string
elements []interface{} elements []interface{}
@ -471,6 +472,7 @@ func TestWriteEventError(t *testing.T) {
for caseName := range table { for caseName := range table {
clock.Step(1 * time.Second) clock.Step(1 * time.Second)
recorder.Event(ref, "Reason", caseName) recorder.Event(ref, "Reason", caseName)
runtime.Gosched()
} }
recorder.Event(ref, "Reason", "finished") recorder.Event(ref, "Reason", "finished")
<-done <-done
@ -548,7 +550,7 @@ func TestEventfNoNamespace(t *testing.T) {
t.Fatal(err) t.Fatal(err)
} }
table := []struct { table := []struct {
obj runtime.Object obj k8sruntime.Object
reason string reason string
messageFmt string messageFmt string
elements []interface{} elements []interface{}
@ -654,7 +656,7 @@ func TestMultiSinkCache(t *testing.T) {
t.Fatal(err) t.Fatal(err)
} }
table := []struct { table := []struct {
obj runtime.Object obj k8sruntime.Object
reason string reason string
messageFmt string messageFmt string
elements []interface{} elements []interface{}