Skip to content

Commit aec8fd8

Browse files
authored
perf: prevent redundant context switch (#152)
1 parent 2981dda commit aec8fd8

File tree

5 files changed

+0
-9
lines changed

5 files changed

+0
-9
lines changed

lib/redis_client/cluster/node.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,6 @@ def load_info(options, **kwargs) # rubocop:disable Metrics/AbcSize, Metrics/Cycl
8585
startup_nodes.each_slice(MAX_THREADS).with_index do |chuncked_startup_nodes, chuncked_idx|
8686
threads = chuncked_startup_nodes.each_with_index.map do |raw_client, idx|
8787
Thread.new(raw_client, (MAX_THREADS * chuncked_idx) + idx) do |cli, i|
88-
Thread.pass
8988
Thread.current.thread_variable_set(:index, i)
9089
reply = cli.call('CLUSTER', 'NODES')
9190
Thread.current.thread_variable_set(:info, parse_cluster_node_reply(reply))
@@ -304,7 +303,6 @@ def try_map(clients) # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComple
304303
clients.each_slice(MAX_THREADS) do |chuncked_clients|
305304
threads = chuncked_clients.map do |k, v|
306305
Thread.new(k, v) do |node_key, client|
307-
Thread.pass
308306
Thread.current.thread_variable_set(:node_key, node_key)
309307
reply = yield(node_key, client)
310308
Thread.current.thread_variable_set(:result, reply)

lib/redis_client/cluster/node/latency_replica.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ def measure_latencies(clients) # rubocop:disable Metrics/AbcSize
4343
clients.each_slice(::RedisClient::Cluster::Node::MAX_THREADS).each_with_object({}) do |chuncked_clients, acc|
4444
threads = chuncked_clients.map do |k, v|
4545
Thread.new(k, v) do |node_key, client|
46-
Thread.pass
4746
Thread.current.thread_variable_set(:node_key, node_key)
4847

4948
min = DUMMY_LATENCY_NSEC

test/cluster_controller.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,6 @@ def scale_in # rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedCo
197197
primary = primary_info.client
198198
threads = @clients.map do |cli|
199199
Thread.new(cli) do |c|
200-
Thread.pass
201200
c.pipelined do |pi|
202201
pi.call('CLUSTER', 'FORGET', replica_info.id)
203202
pi.call('CLUSTER', 'FORGET', primary_info.id)

test/redis_client/cluster/test_normalized_cmd_name.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@ def test_thread_safety
6767

6868
threads = attempts.each_with_index.map do |_, i|
6969
Thread.new do
70-
Thread.pass
7170
Thread.current.thread_variable_set(:index, i)
7271
got = if i.even?
7372
@subject.get_by_command(%w[SET foo bar])

test/test_concurrency.rb

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,7 @@ def test_forking_with_pipelining
5353
def test_threading
5454
threads = Array.new(MAX_THREADS) do
5555
Thread.new do
56-
Thread.pass
5756
ATTEMPTS.times { MAX_THREADS.times { |i| @client.call('INCR', "key#{i}") } }
58-
Thread.pass
5957
ATTEMPTS.times { MAX_THREADS.times { |i| @client.call('DECR', "key#{i}") } }
6058
rescue StandardError => e
6159
Thread.current.thread_variable_set(:error, e)
@@ -70,9 +68,7 @@ def test_threading
7068
def test_threading_with_pipelining
7169
threads = Array.new(MAX_THREADS) do
7270
Thread.new do
73-
Thread.pass
7471
@client.pipelined { |pi| ATTEMPTS.times { MAX_THREADS.times { |i| pi.call('INCR', "key#{i}") } } }
75-
Thread.pass
7672
@client.pipelined { |pi| ATTEMPTS.times { MAX_THREADS.times { |i| pi.call('DECR', "key#{i}") } } }
7773
rescue StandardError => e
7874
Thread.current.thread_variable_set(:error, e)

0 commit comments

Comments
 (0)