cassandra-driver 3.2.0-java → 3.2.1-java

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.
Files changed (142) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +12 -9
  3. data/lib/cassandra.rb +1 -1
  4. data/lib/cassandra/address_resolution.rb +1 -1
  5. data/lib/cassandra/address_resolution/policies/ec2_multi_region.rb +1 -1
  6. data/lib/cassandra/address_resolution/policies/none.rb +1 -1
  7. data/lib/cassandra/aggregate.rb +1 -1
  8. data/lib/cassandra/argument.rb +1 -1
  9. data/lib/cassandra/attr_boolean.rb +1 -1
  10. data/lib/cassandra/auth.rb +1 -1
  11. data/lib/cassandra/auth/providers.rb +1 -1
  12. data/lib/cassandra/auth/providers/password.rb +1 -1
  13. data/lib/cassandra/cassandra_logger.rb +1 -1
  14. data/lib/cassandra/cluster.rb +1 -1
  15. data/lib/cassandra/cluster/client.rb +1 -1
  16. data/lib/cassandra/cluster/connection_pool.rb +1 -1
  17. data/lib/cassandra/cluster/connector.rb +1 -1
  18. data/lib/cassandra/cluster/control_connection.rb +1 -1
  19. data/lib/cassandra/cluster/failed_connection.rb +1 -1
  20. data/lib/cassandra/cluster/metadata.rb +1 -1
  21. data/lib/cassandra/cluster/options.rb +1 -1
  22. data/lib/cassandra/cluster/registry.rb +5 -5
  23. data/lib/cassandra/cluster/schema.rb +1 -1
  24. data/lib/cassandra/cluster/schema/cql_type_parser.rb +1 -1
  25. data/lib/cassandra/cluster/schema/fetchers.rb +2 -2
  26. data/lib/cassandra/cluster/schema/fqcn_type_parser.rb +1 -1
  27. data/lib/cassandra/cluster/schema/partitioners.rb +1 -1
  28. data/lib/cassandra/cluster/schema/partitioners/murmur3.rb +1 -1
  29. data/lib/cassandra/cluster/schema/partitioners/ordered.rb +1 -1
  30. data/lib/cassandra/cluster/schema/partitioners/random.rb +1 -1
  31. data/lib/cassandra/cluster/schema/replication_strategies.rb +1 -1
  32. data/lib/cassandra/cluster/schema/replication_strategies/network_topology.rb +1 -1
  33. data/lib/cassandra/cluster/schema/replication_strategies/none.rb +1 -1
  34. data/lib/cassandra/cluster/schema/replication_strategies/simple.rb +1 -1
  35. data/lib/cassandra/column.rb +1 -1
  36. data/lib/cassandra/column_container.rb +2 -2
  37. data/lib/cassandra/compression.rb +1 -1
  38. data/lib/cassandra/compression/compressors/lz4.rb +1 -1
  39. data/lib/cassandra/compression/compressors/snappy.rb +1 -1
  40. data/lib/cassandra/custom_data.rb +1 -1
  41. data/lib/cassandra/driver.rb +1 -1
  42. data/lib/cassandra/errors.rb +1 -1
  43. data/lib/cassandra/execution/info.rb +1 -1
  44. data/lib/cassandra/execution/options.rb +1 -1
  45. data/lib/cassandra/execution/profile.rb +5 -2
  46. data/lib/cassandra/execution/profile_manager.rb +1 -1
  47. data/lib/cassandra/execution/trace.rb +1 -1
  48. data/lib/cassandra/executors.rb +1 -1
  49. data/lib/cassandra/function.rb +1 -1
  50. data/lib/cassandra/function_collection.rb +1 -1
  51. data/lib/cassandra/future.rb +1 -1
  52. data/lib/cassandra/host.rb +1 -1
  53. data/lib/cassandra/index.rb +1 -1
  54. data/lib/cassandra/keyspace.rb +1 -1
  55. data/lib/cassandra/listener.rb +1 -1
  56. data/lib/cassandra/load_balancing.rb +1 -1
  57. data/lib/cassandra/load_balancing/policies.rb +1 -1
  58. data/lib/cassandra/load_balancing/policies/dc_aware_round_robin.rb +1 -1
  59. data/lib/cassandra/load_balancing/policies/round_robin.rb +1 -1
  60. data/lib/cassandra/load_balancing/policies/token_aware.rb +1 -1
  61. data/lib/cassandra/load_balancing/policies/white_list.rb +1 -1
  62. data/lib/cassandra/materialized_view.rb +1 -1
  63. data/lib/cassandra/null_logger.rb +1 -1
  64. data/lib/cassandra/protocol.rb +1 -1
  65. data/lib/cassandra/protocol/coder.rb +1 -1
  66. data/lib/cassandra/protocol/cql_byte_buffer.rb +1 -1
  67. data/lib/cassandra/protocol/cql_protocol_handler.rb +57 -8
  68. data/lib/cassandra/protocol/request.rb +1 -1
  69. data/lib/cassandra/protocol/requests/auth_response_request.rb +1 -1
  70. data/lib/cassandra/protocol/requests/batch_request.rb +1 -1
  71. data/lib/cassandra/protocol/requests/credentials_request.rb +1 -1
  72. data/lib/cassandra/protocol/requests/execute_request.rb +1 -1
  73. data/lib/cassandra/protocol/requests/options_request.rb +1 -1
  74. data/lib/cassandra/protocol/requests/prepare_request.rb +1 -1
  75. data/lib/cassandra/protocol/requests/query_request.rb +1 -1
  76. data/lib/cassandra/protocol/requests/register_request.rb +1 -1
  77. data/lib/cassandra/protocol/requests/startup_request.rb +1 -1
  78. data/lib/cassandra/protocol/requests/void_query_request.rb +1 -1
  79. data/lib/cassandra/protocol/response.rb +1 -1
  80. data/lib/cassandra/protocol/responses/already_exists_error_response.rb +1 -1
  81. data/lib/cassandra/protocol/responses/auth_challenge_response.rb +1 -1
  82. data/lib/cassandra/protocol/responses/auth_success_response.rb +1 -1
  83. data/lib/cassandra/protocol/responses/authenticate_response.rb +1 -1
  84. data/lib/cassandra/protocol/responses/error_response.rb +1 -1
  85. data/lib/cassandra/protocol/responses/event_response.rb +1 -1
  86. data/lib/cassandra/protocol/responses/function_failure_error_response.rb +1 -1
  87. data/lib/cassandra/protocol/responses/prepared_result_response.rb +1 -1
  88. data/lib/cassandra/protocol/responses/raw_rows_result_response.rb +1 -1
  89. data/lib/cassandra/protocol/responses/read_failure_error_response.rb +1 -1
  90. data/lib/cassandra/protocol/responses/read_timeout_error_response.rb +1 -1
  91. data/lib/cassandra/protocol/responses/ready_response.rb +1 -1
  92. data/lib/cassandra/protocol/responses/result_response.rb +1 -1
  93. data/lib/cassandra/protocol/responses/rows_result_response.rb +1 -1
  94. data/lib/cassandra/protocol/responses/schema_change_event_response.rb +1 -1
  95. data/lib/cassandra/protocol/responses/schema_change_result_response.rb +1 -1
  96. data/lib/cassandra/protocol/responses/set_keyspace_result_response.rb +1 -1
  97. data/lib/cassandra/protocol/responses/status_change_event_response.rb +1 -1
  98. data/lib/cassandra/protocol/responses/supported_response.rb +1 -1
  99. data/lib/cassandra/protocol/responses/topology_change_event_response.rb +1 -1
  100. data/lib/cassandra/protocol/responses/unavailable_error_response.rb +1 -1
  101. data/lib/cassandra/protocol/responses/unprepared_error_response.rb +1 -1
  102. data/lib/cassandra/protocol/responses/void_result_response.rb +1 -1
  103. data/lib/cassandra/protocol/responses/write_failure_error_response.rb +1 -1
  104. data/lib/cassandra/protocol/responses/write_timeout_error_response.rb +1 -1
  105. data/lib/cassandra/protocol/v1.rb +1 -1
  106. data/lib/cassandra/protocol/v3.rb +1 -1
  107. data/lib/cassandra/protocol/v4.rb +1 -1
  108. data/lib/cassandra/reconnection.rb +1 -1
  109. data/lib/cassandra/reconnection/policies.rb +1 -1
  110. data/lib/cassandra/reconnection/policies/constant.rb +1 -1
  111. data/lib/cassandra/reconnection/policies/exponential.rb +1 -1
  112. data/lib/cassandra/result.rb +1 -1
  113. data/lib/cassandra/retry.rb +1 -1
  114. data/lib/cassandra/retry/policies.rb +1 -1
  115. data/lib/cassandra/retry/policies/default.rb +1 -1
  116. data/lib/cassandra/retry/policies/downgrading_consistency.rb +1 -1
  117. data/lib/cassandra/retry/policies/fallthrough.rb +1 -1
  118. data/lib/cassandra/session.rb +8 -4
  119. data/lib/cassandra/statement.rb +1 -1
  120. data/lib/cassandra/statements.rb +1 -1
  121. data/lib/cassandra/statements/batch.rb +1 -1
  122. data/lib/cassandra/statements/bound.rb +1 -1
  123. data/lib/cassandra/statements/prepared.rb +1 -1
  124. data/lib/cassandra/statements/simple.rb +1 -1
  125. data/lib/cassandra/statements/void.rb +1 -1
  126. data/lib/cassandra/table.rb +1 -1
  127. data/lib/cassandra/time.rb +1 -1
  128. data/lib/cassandra/time_uuid.rb +1 -1
  129. data/lib/cassandra/timestamp_generator.rb +1 -1
  130. data/lib/cassandra/timestamp_generator/simple.rb +1 -1
  131. data/lib/cassandra/timestamp_generator/ticking_on_duplicate.rb +1 -1
  132. data/lib/cassandra/trigger.rb +1 -1
  133. data/lib/cassandra/tuple.rb +1 -1
  134. data/lib/cassandra/types.rb +1 -1
  135. data/lib/cassandra/udt.rb +1 -1
  136. data/lib/cassandra/util.rb +1 -1
  137. data/lib/cassandra/uuid.rb +1 -1
  138. data/lib/cassandra/uuid/generator.rb +1 -1
  139. data/lib/cassandra/version.rb +2 -2
  140. data/lib/cassandra_murmur3.jar +0 -0
  141. data/lib/datastax/cassandra.rb +1 -1
  142. metadata +3 -4
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -114,7 +114,10 @@ module Cassandra
114
114
  timeout = options[:timeout]
115
115
 
116
116
  unless timeout.nil?
117
- Util.assert_instance_of(::Numeric, timeout, ":timeout must be a number of seconds, #{timeout.inspect} given")
117
+ Util.assert_instance_of(::Numeric,
118
+ timeout,
119
+ ":timeout must be a number of seconds,
120
+ #{timeout.inspect} given")
118
121
  Util.assert(timeout > 0, ":timeout must be greater than 0, #{timeout} given")
119
122
  end
120
123
  end
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2013-2017 DataStax, Inc.
2
+ # Copyright DataStax, Inc.
3
3
  #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License");
5
5
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -170,7 +170,7 @@ module Cassandra
170
170
  def send_request(request, timeout = nil, with_heartbeat = true)
171
171
  return Ione::Future.failed(Errors::IOError.new('Connection closed')) if closed?
172
172
  schedule_heartbeat if with_heartbeat
173
- promise = RequestPromise.new(request, timeout)
173
+ promise = RequestPromise.new(request, timeout, @scheduler)
174
174
  id = nil
175
175
  @lock.lock
176
176
  begin
@@ -256,11 +256,14 @@ module Cassandra
256
256
 
257
257
  attr_reader :request, :timeout
258
258
  attr_boolean :timed_out
259
+ attr_accessor :timer
259
260
 
260
- def initialize(request, timeout)
261
+ def initialize(request, timeout, scheduler)
261
262
  @request = request
262
263
  @timeout = timeout
263
264
  @timed_out = false
265
+ @scheduler = scheduler
266
+ @lock = Mutex.new
264
267
  super()
265
268
  end
266
269
 
@@ -272,6 +275,56 @@ module Cassandra
272
275
  # rubocop:enable Style/SignalException
273
276
  end
274
277
  end
278
+
279
+ def maybe_start_timer
280
+ # This is more complicated than one would expect. First, we want to start a timer
281
+ # if a timeout is set. But there is a race condition where send_request creates
282
+ # a fresh promise and adds it to @promises, but another thread handles a socket
283
+ # closure event and fails all known promises. When a promise fails, we want to cancel
284
+ # the timer, if set. So, we synchronize access to @timer to be sure we don't set up
285
+ # and cancel the timer at the same time. However, if promise.fail runs first, there
286
+ # will be no timer to cancel, and then when maybe_start_timer gets called in the other
287
+ # thread, it'll create a timer on a promise that no one is going to action on going forward.
288
+ # So, that leads to leaking the timer until it times out. To avoid this, we want to
289
+ # check that the future of the promise isn't completed before starting the timer.
290
+
291
+ return if @timeout.nil?
292
+ return if @future.completed?
293
+
294
+ if @timer.nil?
295
+ @lock.synchronize do
296
+ if @timer.nil?
297
+ return if @future.completed?
298
+ @timer = @scheduler.schedule_timer(@timeout)
299
+ @timer.on_value { time_out! }
300
+ end
301
+ end
302
+ end
303
+ end
304
+
305
+ def fulfill(response)
306
+ super
307
+ maybe_cancel_timer
308
+ end
309
+
310
+ def fail(cause)
311
+ super
312
+ maybe_cancel_timer
313
+ end
314
+
315
+ def maybe_cancel_timer
316
+ return if @timeout.nil?
317
+ timer = nil
318
+ if @timer
319
+ @lock.synchronize do
320
+ if @timer
321
+ timer = @timer
322
+ @timer = nil
323
+ end
324
+ end
325
+ end
326
+ @scheduler.cancel_timer(timer) if timer
327
+ end
275
328
  end
276
329
 
277
330
  def receive_data(data)
@@ -312,11 +365,7 @@ module Cassandra
312
365
  @connection.write do |buffer|
313
366
  @frame_encoder.encode(buffer, request_promise.request, id)
314
367
  end
315
- if request_promise.timeout
316
- @scheduler.schedule_timer(request_promise.timeout).on_value do
317
- request_promise.time_out!
318
- end
319
- end
368
+ request_promise.maybe_start_timer
320
369
  end
321
370
 
322
371
  def socket_closed(cause)
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  #--
4
- # Copyright 2013-2017 DataStax, Inc.
4
+ # Copyright DataStax, Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.