From ef7d8f8fa2a05f887be9a6a10766d4144aa7985b Mon Sep 17 00:00:00 2001 From: kenshinx Date: Thu, 12 Feb 2015 16:06:09 +0800 Subject: [PATCH] Remove mutex lock during call dns.ResponseWriter.WriteMsg Write io buffer needn't mutex operation. Refere to kenshinx/godns#1 --- handler.go | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/handler.go b/handler.go index 2e812b9..310ea16 100644 --- a/handler.go +++ b/handler.go @@ -27,7 +27,6 @@ type GODNSHandler struct { resolver *Resolver cache Cache hosts Hosts - mu *sync.Mutex } func NewHandler() *GODNSHandler { @@ -73,7 +72,7 @@ func NewHandler() *GODNSHandler { hosts := NewHosts(settings.Hosts, settings.Redis) - return &GODNSHandler{resolver, cache, hosts, new(sync.Mutex)} + return &GODNSHandler{resolver, cache, hosts} } func (h *GODNSHandler) do(Net string, w dns.ResponseWriter, req *dns.Msg) { @@ -127,10 +126,8 @@ func (h *GODNSHandler) do(Net string, w dns.ResponseWriter, req *dns.Msg) { Debug("%s didn't hit cache: %s", Q.String(), err) } else { Debug("%s hit cache", Q.String()) - h.mu.Lock() mesg.Id = req.Id w.WriteMsg(mesg) - h.mu.Unlock() return } }