func eventHappened()

in server/resource/v1/common.go [213:234]


func eventHappened(waitStr string, topic *pubsub.Topic) (bool, string, error) {
	d, err := time.ParseDuration(waitStr)
	if err != nil || d > common.MaxWait {
		return false, "", errors.New(common.MsgInvalidWait)
	}
	happened := true
	o, err := NewObserver()
	if err != nil {
		openlog.Error(err.Error())
		return false, "", err
	}
	topicName, err := pubsub.AddObserver(o, topic)
	if err != nil {
		return false, "", errors.New("observe once failed: " + err.Error())
	}
	select {
	case <-time.After(d):
		happened = false
	case <-o.Event:
	}
	return happened, topicName, nil
}