kessel-sdk 1.9.0 → 1.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9408aacf7604105abff5b811ad6548270be6d0c63f6193602fecd703ea79d522
4
- data.tar.gz: 0237cd7effe27b00ff1ac07b1e8a2121f0275a2cbd48e215ae0a24ad511e8fb3
3
+ metadata.gz: da1042aa3891283007d9fd0691e9abafc77e90c35e30e50ffc6cbac5269707cd
4
+ data.tar.gz: 6dc8b95b250b2761b2a6efb717ad3ea5f8f5e291dbc2a1657829a0ab9928eaf3
5
5
  SHA512:
6
- metadata.gz: 6a6ee646283375fcb8f535f14475639e1d9b687212de54c06795eab2de4b07abc310a74c0ba9ed5d660efbcf8a039929f3cf6379ebaae18f8859434324fdd565
7
- data.tar.gz: 6a92e7bb7b73d215fade25f2e818ecfad57638d5f84858c742fd4914294ac90132205cd9e252cb8906729927508fe73ba662e0fe93ee9e6528629be421137448
6
+ metadata.gz: 677a6982ae2894af54d645a6f383fe7d788558895063f7c155cea67331fe691af449e3edc3a83606aac884e552dec727fe9a025d327a8d79dced3f531b75562e
7
+ data.tar.gz: 6548b0ecee560d968a9b46b2dee7823fdc641b3c21e8058a33b89b11ba31fbf3096fef234643763c5a8a1e8d4f8beed7fb91d4e1f36422151b151ada73885a4e
data/lib/kessel/auth.rb CHANGED
@@ -130,6 +130,7 @@ module Kessel
130
130
  @client_secret = client_secret
131
131
  @token_endpoint = token_endpoint
132
132
  @token_mutex = Mutex.new
133
+ @generation = 0
133
134
  end
134
135
 
135
136
  # Gets the current access token with automatic caching and refresh.
@@ -146,13 +147,14 @@ module Kessel
146
147
  def get_token(force_refresh: false)
147
148
  return @cached_token if !force_refresh && token_valid?
148
149
 
149
- @token_mutex.synchronize do
150
- @cached_token = nil if force_refresh
150
+ generation = @generation
151
151
 
152
- # Double-check: another thread might have refreshed the token
153
- return @cached_token if token_valid?
152
+ @token_mutex.synchronize do
153
+ # Another thread already refreshed while we waited on the lock
154
+ return @cached_token if @generation != generation && token_valid?
154
155
 
155
156
  @cached_token = refresh
157
+ @generation += 1
156
158
 
157
159
  return @cached_token
158
160
  rescue StandardError => e
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Kessel
4
4
  module Inventory
5
- VERSION = '1.9.0'
5
+ VERSION = '1.9.1'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kessel-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.0
4
+ version: 1.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Project Kessel
@@ -183,14 +183,14 @@ dependencies:
183
183
  requirements:
184
184
  - - "~>"
185
185
  - !ruby/object:Gem::Version
186
- version: 0.31.0
186
+ version: 0.32.0
187
187
  type: :development
188
188
  prerelease: false
189
189
  version_requirements: !ruby/object:Gem::Requirement
190
190
  requirements:
191
191
  - - "~>"
192
192
  - !ruby/object:Gem::Version
193
- version: 0.31.0
193
+ version: 0.32.0
194
194
  description: This is the official Ruby SDK for [Project Kessel](https://github.com/project-kessel),
195
195
  a system for unifying APIs and experiences with fine-grained authorization, common
196
196
  inventory, and CloudEvents.