From c7e20e280579bcabcb7b122ec11c88ccd057c4e2 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Thu, 24 Dec 2015 13:41:53 +0100 Subject: Use ticker and err channel --- client.go | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'client.go') diff --git a/client.go b/client.go index 1c21b7b..8cfc06e 100644 --- a/client.go +++ b/client.go @@ -250,13 +250,23 @@ func (c *Client) Authorize(a *Account, domain []string) error { ns := parseHeader(resp) done := make(chan bool) + errc := make(chan error) + ticker := time.NewTicker(time.Second) + defer ticker.Stop() go func() { - for { - c.Status(ns.Location.String(), n, done) - time.Sleep(time.Second) + for range ticker.C { + err := c.Status(ns.Location.String(), n, done) + if err != nil { + errc <- err + return + } } }() - <-done + select { + case <-done: + case err = <-errc: + } + } return err } -- cgit v1.2.3