From 1987f424ad0d1e2c23f08d55c78c26a0790cbc56 Mon Sep 17 00:00:00 2001 From: Ron Evans Date: Tue, 7 Apr 2020 01:19:58 +0200 Subject: [PATCH] mqtt: reduce use of goroutines in router to not start a new goroutine for each invocation of each callback Signed-off-by: Ron Evans --- net/mqtt/router.go | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/net/mqtt/router.go b/net/mqtt/router.go index 6d6c59f..7d9b930 100644 --- a/net/mqtt/router.go +++ b/net/mqtt/router.go @@ -150,10 +150,8 @@ func (r *router) matchAndDispatch(messages <-chan *packets.PublishPacket, order handlers = append(handlers, e.Value.(*route).callback) } else { hd := e.Value.(*route).callback - go func() { - hd(client, m) - //TODO: m.Ack() - }() + hd(client, m) + //TODO: m.Ack() } sent = true } @@ -162,10 +160,8 @@ func (r *router) matchAndDispatch(messages <-chan *packets.PublishPacket, order if order { handlers = append(handlers, r.defaultHandler) } else { - go func() { - r.defaultHandler(client, m) - //TODO: m.Ack() - }() + r.defaultHandler(client, m) + //TODO: m.Ack() } } for _, handler := range handlers {