| package supervisor |
| |
| func (s *Supervisor) handleTask(i Task) { |
| var err error |
| switch t := i.(type) { |
| case *AddProcessTask: |
| err = s.addProcess(t) |
| case *CreateCheckpointTask: |
| err = s.createCheckpoint(t) |
| case *DeleteCheckpointTask: |
| err = s.deleteCheckpoint(t) |
| case *StartTask: |
| err = s.start(t) |
| case *DeleteTask: |
| err = s.delete(t) |
| case *ExitTask: |
| err = s.exit(t) |
| case *ExecExitTask: |
| err = s.execExit(t) |
| case *GetContainersTask: |
| err = s.getContainers(t) |
| case *SignalTask: |
| err = s.signal(t) |
| case *StatsTask: |
| err = s.stats(t) |
| case *UpdateTask: |
| err = s.updateContainer(t) |
| case *UpdateProcessTask: |
| err = s.updateProcess(t) |
| case *OOMTask: |
| err = s.oom(t) |
| default: |
| err = ErrUnknownTask |
| } |
| if err != errDeferredResponse { |
| i.ErrorCh() <- err |
| close(i.ErrorCh()) |
| } |
| } |