From 367d0580fa7c64b2e0c2e5f55b5d76c5b6fc677b Mon Sep 17 00:00:00 2001 From: rht Date: Thu, 18 Jun 2015 17:17:38 +0700 Subject: [PATCH] Change Process interface into object variable License: MIT Signed-off-by: rht This commit was moved from ipfs/kubo@007a12e7efb2b26eb79d335f2e8b968c4c541623 --- gateway/core/corehttp/corehttp.go | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/gateway/core/corehttp/corehttp.go b/gateway/core/corehttp/corehttp.go index 95a159fa2..042f056ad 100644 --- a/gateway/core/corehttp/corehttp.go +++ b/gateway/core/corehttp/corehttp.go @@ -12,6 +12,7 @@ import ( ma "github.com/ipfs/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-multiaddr" manet "github.com/ipfs/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-multiaddr-net" + "github.com/ipfs/go-ipfs/Godeps/_workspace/src/github.com/jbenet/goprocess" core "github.com/ipfs/go-ipfs/core" eventlog "github.com/ipfs/go-ipfs/thirdparty/eventlog" ) @@ -78,20 +79,17 @@ func Serve(node *core.IpfsNode, lis net.Listener, options ...ServeOption) error var serverError error serverExited := make(chan struct{}) - node.Children().Add(1) - defer node.Children().Done() - - go func() { + node.Process().Go(func(p goprocess.Process) { serverError = http.Serve(lis, handler) close(serverExited) - }() + }) // wait for server to exit. select { case <-serverExited: // if node being closed before server exits, close server - case <-node.Closing(): + case <-node.Process().Closing(): log.Infof("server at %s terminating...", addr) lis.Close()