1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

Replace Server.IsRunning with Engine.IsShutdown

Signed-off-by: Solomon Hykes <solomon@docker.com>
This commit is contained in:
Solomon Hykes 2014-08-05 07:56:29 +00:00
parent b4efcd53e0
commit 78f0a914ee
4 changed files with 4 additions and 23 deletions

View file

@ -517,10 +517,9 @@ func (container *Container) monitor(callback execdriver.StartCallback) error {
if container.daemon != nil && container.daemon.srv != nil {
container.LogEvent("die")
}
if container.daemon != nil && container.daemon.srv != nil && container.daemon.srv.IsRunning() {
// FIXME: here is race condition between two RUN instructions in Dockerfile
// because they share same runconfig and change image. Must be fixed
// in builder/builder.go
// If the engine is shutting down, don't save the container state as stopped.
// This will cause it to be restarted when the engine is restarted.
if container.daemon != nil && container.daemon.eng != nil && !container.daemon.eng.IsShutdown() {
if err := container.toDisk(); err != nil {
utils.Errorf("Error dumping container %s state to disk: %s\n", container.ID, err)
}

View file

@ -1,5 +1,5 @@
package daemon
// FIXME: this shim interface is no longer needed, it can be removed
type Server interface {
IsRunning() bool // returns true if the server is currently in operation
}

View file

@ -12,9 +12,6 @@ import (
func (srv *Server) handlerWrap(h engine.Handler) engine.Handler {
return func(job *engine.Job) engine.Status {
if !srv.IsRunning() {
return job.Errorf("Server is not running")
}
srv.tasks.Add(1)
defer srv.tasks.Done()
return h(job)
@ -53,7 +50,6 @@ func InitServer(job *engine.Job) engine.Status {
if err := srv.daemon.Install(job.Eng); err != nil {
return job.Error(err)
}
srv.SetRunning(true)
return engine.StatusOK
}

View file

@ -28,25 +28,11 @@ import (
"github.com/docker/docker/engine"
)
func (srv *Server) SetRunning(status bool) {
srv.Lock()
defer srv.Unlock()
srv.running = status
}
func (srv *Server) IsRunning() bool {
srv.RLock()
defer srv.RUnlock()
return srv.running
}
type Server struct {
sync.RWMutex
daemon *daemon.Daemon
pullingPool map[string]chan struct{}
pushingPool map[string]chan struct{}
Eng *engine.Engine
running bool
tasks sync.WaitGroup
}