launchdarkly-server-sdk 8.8.3 → 8.8.4

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: e8808d821b8a425ef52d5170b47f69a8ef312d491128825162ac975010f0245b
4
- data.tar.gz: 7a67c381df8e9b42e9ab0cf207ee8ff028758d842f73ee70d0f4f4feb19c790a
3
+ metadata.gz: 5456b1e43c76b05464e496a779314331ed169161cf2ea43c7e2a4e55f1fce057
4
+ data.tar.gz: e35cfd9f85e8b01c618f30e053dba27b21eb72508c5be165737f14c4e34f381d
5
5
  SHA512:
6
- metadata.gz: ca52cc34ad0b23d49efb6a5bce8e80931f7c71e13eea88fd4bd53a4a270ab6e2149de7f0af1d7781fbc2071bb929097719cbc57e60b5253cea8a12dfcad397e5
7
- data.tar.gz: 9a9d230a6511c6362a7f6246bcf76a6be0bdfdcc91710f158e7d6ff407e8e117e5f786042986153d03a5da8a6e47f2eb3d2473db2d79df37c6c3070c1960b54d
6
+ metadata.gz: 2ad668a2d238e9f6f4ca359a704ee24ae87647be20ba31cb388393f41619a77bb86fe5fd4532b3356bfdc962ba9a93b7bacbd67578a1aa902b6fd2e355535fc2
7
+ data.tar.gz: eaa2ebf7ccb3ab9a40d8083690726135ced22fd9acedb9b8a6c5783b4ba949889d7f417c94d8c8eb2f73dbe82c7d952d9bf7951d2939fcf105ef3647276de72b
@@ -243,17 +243,17 @@ module LaunchDarkly
243
243
  @events_in_last_batch = 0
244
244
 
245
245
  outbox = EventBuffer.new(config.capacity, config.logger)
246
- flush_workers = NonBlockingThreadPool.new(MAX_FLUSH_WORKERS)
246
+ flush_workers = NonBlockingThreadPool.new(MAX_FLUSH_WORKERS, 'LD/EventDispatcher/FlushWorkers')
247
247
 
248
248
  if !@diagnostic_accumulator.nil?
249
- diagnostic_event_workers = NonBlockingThreadPool.new(1)
249
+ diagnostic_event_workers = NonBlockingThreadPool.new(1, 'LD/EventDispatcher/DiagnosticEventWorkers')
250
250
  init_event = @diagnostic_accumulator.create_init_event(config)
251
251
  send_diagnostic_event(init_event, diagnostic_event_workers)
252
252
  else
253
253
  diagnostic_event_workers = nil
254
254
  end
255
255
 
256
- Thread.new { main_loop(inbox, outbox, flush_workers, diagnostic_event_workers) }
256
+ Thread.new { main_loop(inbox, outbox, flush_workers, diagnostic_event_workers) }.name = "LD/EventDispatcher#main_loop"
257
257
  end
258
258
 
259
259
  private
@@ -24,7 +24,7 @@ module LaunchDarkly
24
24
 
25
25
  unless @store.nil?
26
26
  @cache = ExpiringCache.new(big_segments_config.context_cache_size, big_segments_config.context_cache_time)
27
- @poll_worker = RepeatingTask.new(big_segments_config.status_poll_interval, 0, -> { poll_store_and_update_status }, logger)
27
+ @poll_worker = RepeatingTask.new(big_segments_config.status_poll_interval, 0, -> { poll_store_and_update_status }, logger, 'LD/BigSegments#status')
28
28
  @poll_worker.start
29
29
  end
30
30
  end
@@ -216,6 +216,7 @@ module LaunchDarkly
216
216
  end
217
217
  end
218
218
  end
219
+ @thread.name = "LD/FileDataSource"
219
220
  end
220
221
 
221
222
  def stop
@@ -188,6 +188,9 @@ module LaunchDarkly
188
188
  auth_handler = Thread.new { authoritative_result = authoritative.run }
189
189
  nonauth_handler = Thread.new { nonauthoritative_result = nonauthoritative.run }
190
190
 
191
+ auth_handler.name = "LD/Migrator#auth_handler"
192
+ nonauth_handler.name = "LD/Migrator#nonauth_handler"
193
+
191
194
  auth_handler.join()
192
195
  nonauth_handler.join()
193
196
  when LaunchDarkly::Migrations::MigratorBuilder::EXECUTION_RANDOM && @sampler.sample(2)
@@ -5,13 +5,16 @@ require "concurrent/atomics"
5
5
  module LaunchDarkly
6
6
  module Impl
7
7
  class RepeatingTask
8
- def initialize(interval, start_delay, task, logger)
8
+ attr_reader :name
9
+
10
+ def initialize(interval, start_delay, task, logger, name)
9
11
  @interval = interval
10
12
  @start_delay = start_delay
11
13
  @task = task
12
14
  @logger = logger
13
15
  @stopped = Concurrent::AtomicBoolean.new(false)
14
16
  @worker = nil
17
+ @name = name
15
18
  end
16
19
 
17
20
  def start
@@ -31,6 +34,8 @@ module LaunchDarkly
31
34
  end
32
35
  end
33
36
  end
37
+
38
+ @worker.name = @name
34
39
  end
35
40
 
36
41
  def stop
@@ -99,7 +99,7 @@ module LaunchDarkly
99
99
 
100
100
  @logger.warn("Detected persistent store unavailability; updates will be cached until it recovers.")
101
101
 
102
- task = Impl::RepeatingTask.new(0.5, 0, -> { self.check_availability }, @logger)
102
+ task = Impl::RepeatingTask.new(0.5, 0, -> { self.check_availability }, @logger, 'LD/StoreWrapper#check_availability')
103
103
 
104
104
  @mutex.synchronize do
105
105
  @poller = task
@@ -8,9 +8,9 @@ module LaunchDarkly
8
8
  # than blocking. Also provides a way to wait for all jobs to finish without shutting down.
9
9
  # @private
10
10
  class NonBlockingThreadPool
11
- def initialize(capacity)
11
+ def initialize(capacity, name = 'LD/NonBlockingThreadPool')
12
12
  @capacity = capacity
13
- @pool = Concurrent::FixedThreadPool.new(capacity)
13
+ @pool = Concurrent::FixedThreadPool.new(capacity, name: name)
14
14
  @semaphore = Concurrent::Semaphore.new(capacity)
15
15
  end
16
16
 
@@ -13,7 +13,7 @@ module LaunchDarkly
13
13
  @initialized = Concurrent::AtomicBoolean.new(false)
14
14
  @started = Concurrent::AtomicBoolean.new(false)
15
15
  @ready = Concurrent::Event.new
16
- @task = Impl::RepeatingTask.new(@config.poll_interval, 0, -> { self.poll }, @config.logger)
16
+ @task = Impl::RepeatingTask.new(@config.poll_interval, 0, -> { self.poll }, @config.logger, 'LD/PollingDataSource')
17
17
  end
18
18
 
19
19
  def initialized?
@@ -1,3 +1,3 @@
1
1
  module LaunchDarkly
2
- VERSION = "8.8.3" # x-release-please-version
2
+ VERSION = "8.8.4" # x-release-please-version
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: launchdarkly-server-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.8.3
4
+ version: 8.8.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - LaunchDarkly
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-02-24 00:00:00.000000000 Z
11
+ date: 2025-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-dynamodb
@@ -246,14 +246,14 @@ dependencies:
246
246
  requirements:
247
247
  - - '='
248
248
  - !ruby/object:Gem::Version
249
- version: 2.2.2
249
+ version: 2.2.3
250
250
  type: :runtime
251
251
  prerelease: false
252
252
  version_requirements: !ruby/object:Gem::Requirement
253
253
  requirements:
254
254
  - - '='
255
255
  - !ruby/object:Gem::Version
256
- version: 2.2.2
256
+ version: 2.2.3
257
257
  - !ruby/object:Gem::Dependency
258
258
  name: observer
259
259
  requirement: !ruby/object:Gem::Requirement