func NewEventTimeoutWatcher(parentLogger logger.Logger, timeout time.Duration, processor Processor) (*EventTimeoutWatcher, error) {
	watcher := &EventTimeoutWatcher{
		logger:    parentLogger.GetChild("timeout"),
		timeout:   timeout,
		processor: processor,
	}
	go watcher.watch()
	return watcher, nil
}
NewEventTimeoutWatcher returns a new watcher
package timeout
import (
	"fmt"
	"time"
	"github.com/nuclio/nuclio/pkg/processor/trigger"
	"github.com/nuclio/nuclio/pkg/processor/worker"
	"github.com/nuclio/errors"
	"github.com/nuclio/logger"
	"golang.org/x/sync/errgroup"
)
type Processor interface {
	GetTriggers() []trigger.Trigger
	Stop()
}
type EventTimeoutWatcher struct {
	timeout      time.Duration
	logger       logger.Logger
	processor    Processor
	shuttingDown bool
}