From 066185ee86fc79a2013c6ab989b4805c32fe7ac2 Mon Sep 17 00:00:00 2001 From: Prajjawalk Date: Wed, 7 Dec 2022 23:04:56 +0530 Subject: [PATCH] Add: waitgroup for logger to wait for RPC server to be mounted, ref issue:- #299 Signed-off-by: Prajjawalk --- waku/node.go | 7 ++++++- waku/v2/rest/waku_rest.go | 4 +++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/waku/node.go b/waku/node.go index fdbeec86..b6d8cff4 100644 --- a/waku/node.go +++ b/waku/node.go @@ -13,6 +13,7 @@ import ( "os/signal" "regexp" "strings" + "sync" "syscall" "time" @@ -362,12 +363,16 @@ func Execute(options Options) { rpcServer.Start() } + var wg sync.WaitGroup + var restServer *rest.WakuRest if options.RESTServer.Enable { + wg.Add(1) restServer = rest.NewWakuRest(wakuNode, options.RESTServer.Address, options.RESTServer.Port, options.RESTServer.Admin, options.RESTServer.Private, options.RESTServer.RelayCacheCapacity, logger) - restServer.Start() + restServer.Start(&wg) } + wg.Wait() logger.Info("Node setup complete") // Wait for a SIGINT or SIGTERM signal diff --git a/waku/v2/rest/waku_rest.go b/waku/v2/rest/waku_rest.go index f32f5c27..f9f323bd 100644 --- a/waku/v2/rest/waku_rest.go +++ b/waku/v2/rest/waku_rest.go @@ -4,6 +4,7 @@ import ( "context" "fmt" "net/http" + "sync" "github.com/gorilla/mux" "github.com/waku-org/go-waku/waku/v2/node" @@ -46,7 +47,8 @@ func NewWakuRest(node *node.WakuNode, address string, port int, enableAdmin bool return wrpc } -func (r *WakuRest) Start() { +func (r *WakuRest) Start(wg *sync.WaitGroup) { + defer wg.Done() go r.relayService.Start() go func() { _ = r.server.ListenAndServe()