Parcourir la source

Merge pull request #33772 from cpuguy83/optimizations

Don't json marshal then immediately unmarshal
Sebastiaan van Stijn il y a 8 ans
Parent
commit
4fc2710dc7
2 fichiers modifiés avec 3 ajouts et 8 suppressions
  1. 1 2
      libcontainerd/client_unix.go
  2. 2 6
      libcontainerd/container_unix.go

+ 1 - 2
libcontainerd/client_unix.go

@@ -83,8 +83,7 @@ func (clnt *client) Create(containerID string, checkpoint string, checkpointDir
 	if err := json.NewEncoder(f).Encode(spec); err != nil {
 		return err
 	}
-
-	return container.start(checkpoint, checkpointDir, attachStdio)
+	return container.start(&spec, checkpoint, checkpointDir, attachStdio)
 }
 
 func (clnt *client) Signal(containerID string, sig int) error {

+ 2 - 6
libcontainerd/container_unix.go

@@ -90,12 +90,7 @@ func (ctr *container) spec() (*specs.Spec, error) {
 	return &spec, nil
 }
 
-func (ctr *container) start(checkpoint string, checkpointDir string, attachStdio StdioCallback) (err error) {
-	spec, err := ctr.spec()
-	if err != nil {
-		return nil
-	}
-
+func (ctr *container) start(spec *specs.Spec, checkpoint, checkpointDir string, attachStdio StdioCallback) (err error) {
 	ctx, cancel := context.WithCancel(context.Background())
 	defer cancel()
 	ready := make(chan struct{})
@@ -172,6 +167,7 @@ func (ctr *container) start(checkpoint string, checkpointDir string, attachStdio
 			State: StateStart,
 			Pid:   ctr.systemPid,
 		}})
+
 }
 
 func (ctr *container) newProcess(friendlyName string) *process {