Add docs around multiple attach

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
This commit is contained in:
Michael Crosby 2017-10-06 16:39:38 -04:00
parent 987fcd1201
commit bbb01ee1ab
2 changed files with 7 additions and 0 deletions

View File

@ -32,6 +32,9 @@ type Container interface {
// //
// If IOAttach options are passed the client will reattach to the IO for the running // If IOAttach options are passed the client will reattach to the IO for the running
// task. If no task exists for the container a NotFound error is returned // task. If no task exists for the container a NotFound error is returned
//
// Clients must make sure that only one reader is attached to the task and consuming
// the output from the task's fifos
Task(context.Context, IOAttach) (Task, error) Task(context.Context, IOAttach) (Task, error)
// Image returns the image that the container is based on // Image returns the image that the container is based on
Image(context.Context) (Image, error) Image(context.Context) (Image, error)

4
io.go
View File

@ -68,6 +68,10 @@ func (c *cio) Close() error {
type IOCreation func(id string) (IO, error) type IOCreation func(id string) (IO, error)
// IOAttach allows callers to reattach to running tasks // IOAttach allows callers to reattach to running tasks
//
// There should only be one reader for a task's IO set
// because fifo's can only be read from one reader or the output
// will be sent only to the first reads
type IOAttach func(*FIFOSet) (IO, error) type IOAttach func(*FIFOSet) (IO, error)
// NewIO returns an IOCreation that will provide IO sets without a terminal // NewIO returns an IOCreation that will provide IO sets without a terminal