34 lines
		
	
	
		
			645 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			645 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package supervisor
 | |
| 
 | |
| import (
 | |
| 	"sync"
 | |
| 
 | |
| 	"github.com/docker/containerd/runtime"
 | |
| )
 | |
| 
 | |
| // StartResponse is the response containing a started container
 | |
| type StartResponse struct {
 | |
| 	Container runtime.Container
 | |
| }
 | |
| 
 | |
| // Task executes an action returning an error chan with either nil or
 | |
| // the error from executing the task
 | |
| type Task interface {
 | |
| 	// ErrorCh returns a channel used to report and error from an async task
 | |
| 	ErrorCh() chan error
 | |
| }
 | |
| 
 | |
| type baseTask struct {
 | |
| 	errCh chan error
 | |
| 	mu    sync.Mutex
 | |
| }
 | |
| 
 | |
| func (t *baseTask) ErrorCh() chan error {
 | |
| 	t.mu.Lock()
 | |
| 	defer t.mu.Unlock()
 | |
| 	if t.errCh == nil {
 | |
| 		t.errCh = make(chan error, 1)
 | |
| 	}
 | |
| 	return t.errCh
 | |
| }
 | 
