From 53f1a9a50a156630d3d2f6c01814d33791f7bb9c Mon Sep 17 00:00:00 2001 From: Jeromy Date: Wed, 24 May 2017 09:12:27 -0700 Subject: [PATCH] make odds of 'process added after close' panic less likely License: MIT Signed-off-by: Jeromy --- core/corehttp/corehttp.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/corehttp/corehttp.go b/core/corehttp/corehttp.go index 6809f270d..57478a628 100644 --- a/core/corehttp/corehttp.go +++ b/core/corehttp/corehttp.go @@ -79,6 +79,12 @@ func Serve(node *core.IpfsNode, lis net.Listener, options ...ServeOption) error var serverError error serverExited := make(chan struct{}) + select { + case <-node.Process().Closing(): + return fmt.Errorf("failed to start server, process closing") + default: + } + node.Process().Go(func(p goprocess.Process) { serverError = http.Serve(lis, handler) close(serverExited)