From 3c9a3849e2396071db7da272bad863f549c96a7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Musab=20G=C3=BCltekin?= Date: Mon, 19 Apr 2021 12:58:47 +0300 Subject: [PATCH] Start command now waits for synchronized requests too. This fixes if requests are made using different goroutines with synchronized requests. It doesn't cause any issues on concurrent requests because we already wait for them. --- geziyor.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/geziyor.go b/geziyor.go index a4f767a..87b93be 100644 --- a/geziyor.go +++ b/geziyor.go @@ -222,10 +222,10 @@ func (g *Geziyor) Do(req *client.Request, callback func(g *Geziyor, r *client.Re if g.shutdown { return } + g.wgRequests.Add(1) if req.Synchronized { g.do(req, callback) } else { - g.wgRequests.Add(1) go g.do(req, callback) } } @@ -234,9 +234,7 @@ func (g *Geziyor) Do(req *client.Request, callback func(g *Geziyor, r *client.Re func (g *Geziyor) do(req *client.Request, callback func(g *Geziyor, r *client.Response)) { g.acquireSem(req) defer g.releaseSem(req) - if !req.Synchronized { - defer g.wgRequests.Done() - } + defer g.wgRequests.Done() defer g.recoverMe() for _, middlewareFunc := range g.reqMiddlewares {