40 lines
		
	
	
		
			798 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			798 B
		
	
	
	
		
			Go
		
	
	
	
	
	
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 != errDeferedResponse {
 | 
						|
		i.ErrorCh() <- err
 | 
						|
		close(i.ErrorCh())
 | 
						|
	}
 | 
						|
}
 |