Re-factor clean exiting to be usable in the client also
This commit is contained in:
parent
4eb75e1db1
commit
2dcd08d502
@ -1,6 +1,7 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"asink"
|
||||
"net"
|
||||
"net/http"
|
||||
"net/rpc"
|
||||
@ -68,7 +69,7 @@ func (u *UserModifier) RemoveUser(user *User, result *int) error {
|
||||
type ServerStopper int
|
||||
|
||||
func (s *ServerStopper) StopServer(code *int, result *int) error {
|
||||
Exit(*code)
|
||||
asink.Exit(*code)
|
||||
*result = 0
|
||||
return nil
|
||||
}
|
||||
@ -92,5 +93,5 @@ func StartRPC(sock string, tornDown chan int, adb *AsinkDB) {
|
||||
|
||||
go http.Serve(l, nil)
|
||||
|
||||
WaitOnExit()
|
||||
asink.WaitOnExit()
|
||||
}
|
||||
|
@ -29,6 +29,8 @@ func init() {
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
asink.SetupCleanExitOnSignals()
|
||||
}
|
||||
|
||||
const sock_usage = "Socket to use to connect to the Asink server."
|
||||
@ -60,7 +62,7 @@ func StartServer(args []string) {
|
||||
go http.Serve(l, nil)
|
||||
//TODO handle errors from http.Serve?
|
||||
|
||||
WaitOnExit()
|
||||
asink.WaitOnExit()
|
||||
<-rpcTornDown
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
package main
|
||||
package asink
|
||||
|
||||
import (
|
||||
"os"
|
||||
@ -14,9 +14,11 @@ func init() {
|
||||
exitWaiterCount = 0
|
||||
exitWaiterChan = make(chan int)
|
||||
exitCalled = make(chan int)
|
||||
go setupCleanExitOnSignals()
|
||||
}
|
||||
|
||||
func SetupCleanExitOnSignals() {
|
||||
go setupCleanExitOnSignals()
|
||||
}
|
||||
func setupCleanExitOnSignals() {
|
||||
//wait to properly close the socket when we're exiting
|
||||
exitCode := 0
|
Loading…
Reference in New Issue
Block a user