address review comments
diff --git a/apigee_sync.go b/apigee_sync.go index 20eb9a5..d32635a 100644 --- a/apigee_sync.go +++ b/apigee_sync.go
@@ -9,6 +9,8 @@ "path" "time" + "sync/atomic" + "github.com/30x/apid-core" "github.com/apigee-labs/transicator/common" ) @@ -23,7 +25,7 @@ block string = "45" token string lastSequence string - polling bool + polling uint32 ) /* @@ -32,11 +34,9 @@ */ func pollForChanges() { - // ensure there's just one polling thread - if polling { + if atomic.SwapUint32(&polling, 1) == 1 { return } - polling = true var backOffFunc func() pollInterval := config.GetDuration(configPollInterval) @@ -61,7 +61,7 @@ backOffFunc() } - polling = false + atomic.SwapUint32(&polling, 0) } /* @@ -130,6 +130,7 @@ token = "" case http.StatusNotModified: + r.Body.Close() continue case http.StatusBadRequest: @@ -168,7 +169,6 @@ case <-time.After(httpTimeout): log.Panic("Timeout. Plugins failed to respond to changes.") case <-done: - close(done) } } else { log.Debugf("No Changes detected for Scopes: %s", scopes) @@ -176,7 +176,7 @@ if lastSequence != resp.LastSequence { lastSequence = resp.LastSequence - err := updateLastSequence(lastSequence) + err := updateLastSequence(resp.LastSequence) if err != nil { log.Panic("Unable to update Sequence in DB") } @@ -347,7 +347,6 @@ case <-time.After(pluginTimeout): log.Panic("Timeout. Plugins failed to respond to snapshot.") case <-done: - close(done) } }