@@ -640,6 +640,8 @@ func (s *DockerServer) topContainer(w http.ResponseWriter, r *http.Request) {
640640 http .Error (w , err .Error (), http .StatusNotFound )
641641 return
642642 }
643+ s .cMut .RLock ()
644+ defer s .cMut .RUnlock ()
643645 if ! container .State .Running {
644646 w .WriteHeader (http .StatusInternalServerError )
645647 fmt .Fprintf (w , "Container %s is not running" , id )
@@ -787,11 +789,13 @@ func (s *DockerServer) attachContainer(w http.ResponseWriter, r *http.Request) {
787789 }()
788790 }
789791 outStream := stdcopy .NewStdWriter (conn , stdcopy .Stdout )
792+ s .cMut .RLock ()
790793 if container .State .Running {
791794 fmt .Fprintf (outStream , "Container is running\n " )
792795 } else {
793796 fmt .Fprintf (outStream , "Container is not running\n " )
794797 }
798+ s .cMut .RUnlock ()
795799 fmt .Fprintln (outStream , "What happened?" )
796800 fmt .Fprintln (outStream , "Something happened" )
797801 wg .Wait ()
@@ -919,11 +923,13 @@ func (s *DockerServer) logContainer(w http.ResponseWriter, r *http.Request) {
919923 }
920924 w .Header ().Set ("Content-Type" , "application/vnd.docker.raw-stream" )
921925 w .WriteHeader (http .StatusOK )
926+ s .cMut .RLock ()
922927 if container .State .Running {
923928 fmt .Fprintf (w , "Container is running\n " )
924929 } else {
925930 fmt .Fprintf (w , "Container is not running\n " )
926931 }
932+ s .cMut .RUnlock ()
927933 fmt .Fprintln (w , "What happened?" )
928934 fmt .Fprintln (w , "Something happened" )
929935 if r .URL .Query ().Get ("follow" ) == "1" {
0 commit comments