1
0
Fork 0
forked from External/grumble

Handle freeze requests for stopped servers

This commit is contained in:
Benjamin Jemlich 2011-04-26 02:55:42 +08:00 committed by Mikkel Krautz
parent c6eeabde62
commit 705b43bcd5

View file

@ -986,6 +986,17 @@ func (server *Server) userEnterChannel(client *Client, channel *Channel, usersta
// Create a point-in-time snapshot of Server and make it
// accessible through the returned io.ReadCloser.
func (s *Server) FreezeServer() io.ReadCloser {
if !s.running {
fs, err := s.Freeze()
if err != nil {
log.Panicf("Unable to freeze the server")
}
fr := &freezeRequest{done:make(chan bool)}
go s.handleFreezeRequest(fr, &fs)
<-fr.done
return fr.readCloser
}
fr := &freezeRequest{done:make(chan bool)}
s.freezeRequest <- fr
<-fr.done