summaryrefslogtreecommitdiff
path: root/vendor/github.com/hashicorp/terraform/vendor/github.com/hashicorp/consul/api/semaphore.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/hashicorp/terraform/vendor/github.com/hashicorp/consul/api/semaphore.go')
-rw-r--r--vendor/github.com/hashicorp/terraform/vendor/github.com/hashicorp/consul/api/semaphore.go29
1 files changed, 15 insertions, 14 deletions
diff --git a/vendor/github.com/hashicorp/terraform/vendor/github.com/hashicorp/consul/api/semaphore.go b/vendor/github.com/hashicorp/terraform/vendor/github.com/hashicorp/consul/api/semaphore.go
index e6645ac1..9ddbdc49 100644
--- a/vendor/github.com/hashicorp/terraform/vendor/github.com/hashicorp/consul/api/semaphore.go
+++ b/vendor/github.com/hashicorp/terraform/vendor/github.com/hashicorp/consul/api/semaphore.go
@@ -155,22 +155,23 @@ func (s *Semaphore) Acquire(stopCh <-chan struct{}) (<-chan struct{}, error) {
// Check if we need to create a session first
s.lockSession = s.opts.Session
if s.lockSession == "" {
- if sess, err := s.createSession(); err != nil {
+ sess, err := s.createSession()
+ if err != nil {
return nil, fmt.Errorf("failed to create session: %v", err)
- } else {
- s.sessionRenew = make(chan struct{})
- s.lockSession = sess
- session := s.c.Session()
- go session.RenewPeriodic(s.opts.SessionTTL, sess, nil, s.sessionRenew)
-
- // If we fail to acquire the lock, cleanup the session
- defer func() {
- if !s.isHeld {
- close(s.sessionRenew)
- s.sessionRenew = nil
- }
- }()
}
+
+ s.sessionRenew = make(chan struct{})
+ s.lockSession = sess
+ session := s.c.Session()
+ go session.RenewPeriodic(s.opts.SessionTTL, sess, nil, s.sessionRenew)
+
+ // If we fail to acquire the lock, cleanup the session
+ defer func() {
+ if !s.isHeld {
+ close(s.sessionRenew)
+ s.sessionRenew = nil
+ }
+ }()
}
// Create the contender entry