package supervisor import "time" type StartEvent struct { s *Supervisor } func (h *StartEvent) Handle(e *Event) error { start := time.Now() container, io, err := h.s.runtime.Create(e.ID, e.BundlePath, e.Console) if err != nil { return err } h.s.containerGroup.Add(1) h.s.containers[e.ID] = &containerInfo{ container: container, } ContainersCounter.Inc(1) task := &StartTask{ Err: e.Err, IO: io, Container: container, Stdin: e.Stdin, Stdout: e.Stdout, Stderr: e.Stderr, StartResponse: e.StartResponse, } if e.Checkpoint != nil { task.Checkpoint = e.Checkpoint.Name } h.s.tasks <- task ContainerCreateTimer.UpdateSince(start) return errDeferedResponse }