From 711e0fd90d66b1aea1696305cd12c65117fff7eb Mon Sep 17 00:00:00 2001 From: Miek Gieben Date: Thu, 19 Dec 2019 13:11:22 +0000 Subject: [PATCH] doc: fix xfr example. (#1062) * doc: fix xfr example. The currently example code has a data race, put in the proper code. Fixes: #1061 Signed-off-by: Miek Gieben * Feedback Signed-off-by: Miek Gieben --- xfr.go | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/xfr.go b/xfr.go index bb4ca3d8..43970e64 100644 --- a/xfr.go +++ b/xfr.go @@ -182,14 +182,17 @@ func (t *Transfer) inIxfr(q *Msg, c chan *Envelope) { // // ch := make(chan *dns.Envelope) // tr := new(dns.Transfer) -// go tr.Out(w, r, ch) +// var wg sync.WaitGroup +// go func() { +// tr.Out(w, r, ch) +// wg.Done() +// }() // ch <- &dns.Envelope{RR: []dns.RR{soa, rr1, rr2, rr3, soa}} // close(ch) -// w.Hijack() -// // w.Close() // Client closes connection +// wg.Wait() // wait until everything is written out +// w.Close() // close connection // -// The server is responsible for sending the correct sequence of RRs through the -// channel ch. +// The server is responsible for sending the correct sequence of RRs through the channel ch. func (t *Transfer) Out(w ResponseWriter, q *Msg, ch chan *Envelope) error { for x := range ch { r := new(Msg)