concurrent-ruby 0.6.1 → 0.7.0.rc0

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 (94) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/lib/concurrent.rb +3 -4
  4. data/lib/concurrent/atomic.rb +46 -0
  5. data/lib/concurrent/atomic_reference/concurrent_update_error.rb +7 -0
  6. data/lib/concurrent/atomic_reference/delegated_update.rb +28 -0
  7. data/lib/concurrent/atomic_reference/direct_update.rb +28 -0
  8. data/lib/concurrent/atomic_reference/jruby.rb +8 -0
  9. data/lib/concurrent/atomic_reference/mutex_atomic.rb +47 -0
  10. data/lib/concurrent/atomic_reference/numeric_cas_wrapper.rb +24 -0
  11. data/lib/concurrent/atomic_reference/rbx.rb +16 -0
  12. data/lib/concurrent/atomic_reference/ruby.rb +16 -0
  13. data/lib/concurrent/atomics.rb +1 -1
  14. data/lib/concurrent/configuration.rb +1 -1
  15. data/lib/concurrent/supervisor.rb +1 -1
  16. data/lib/concurrent/timer_task.rb +0 -36
  17. data/lib/concurrent/version.rb +1 -1
  18. data/lib/concurrent_ruby_ext.so +0 -0
  19. data/lib/extension_helper.rb +9 -0
  20. metadata +16 -148
  21. data/lib/concurrent/actor/actor.rb +0 -270
  22. data/lib/concurrent/actor/postable.rb +0 -102
  23. data/lib/concurrent/actors.rb +0 -2
  24. data/lib/concurrent/atomic/atomic.rb +0 -48
  25. data/lib/concurrent/runnable.rb +0 -90
  26. data/lib/concurrent/stoppable.rb +0 -20
  27. data/spec/concurrent/actor/actor_spec.rb +0 -376
  28. data/spec/concurrent/actor/postable_shared.rb +0 -218
  29. data/spec/concurrent/actress_spec.rb +0 -211
  30. data/spec/concurrent/agent_spec.rb +0 -500
  31. data/spec/concurrent/async_spec.rb +0 -352
  32. data/spec/concurrent/atomic/atomic_boolean_spec.rb +0 -172
  33. data/spec/concurrent/atomic/atomic_fixnum_spec.rb +0 -186
  34. data/spec/concurrent/atomic/atomic_spec.rb +0 -133
  35. data/spec/concurrent/atomic/condition_spec.rb +0 -171
  36. data/spec/concurrent/atomic/copy_on_notify_observer_set_spec.rb +0 -10
  37. data/spec/concurrent/atomic/copy_on_write_observer_set_spec.rb +0 -10
  38. data/spec/concurrent/atomic/count_down_latch_spec.rb +0 -151
  39. data/spec/concurrent/atomic/cyclic_barrier_spec.rb +0 -248
  40. data/spec/concurrent/atomic/event_spec.rb +0 -200
  41. data/spec/concurrent/atomic/observer_set_shared.rb +0 -242
  42. data/spec/concurrent/atomic/thread_local_var_spec.rb +0 -113
  43. data/spec/concurrent/channel/buffered_channel_spec.rb +0 -151
  44. data/spec/concurrent/channel/channel_spec.rb +0 -39
  45. data/spec/concurrent/channel/probe_spec.rb +0 -77
  46. data/spec/concurrent/channel/unbuffered_channel_spec.rb +0 -132
  47. data/spec/concurrent/collection/blocking_ring_buffer_spec.rb +0 -149
  48. data/spec/concurrent/collection/priority_queue_spec.rb +0 -317
  49. data/spec/concurrent/collection/ring_buffer_spec.rb +0 -126
  50. data/spec/concurrent/configuration_spec.rb +0 -69
  51. data/spec/concurrent/dataflow_spec.rb +0 -242
  52. data/spec/concurrent/delay_spec.rb +0 -91
  53. data/spec/concurrent/dereferenceable_shared.rb +0 -146
  54. data/spec/concurrent/exchanger_spec.rb +0 -66
  55. data/spec/concurrent/executor/cached_thread_pool_shared.rb +0 -115
  56. data/spec/concurrent/executor/fixed_thread_pool_shared.rb +0 -136
  57. data/spec/concurrent/executor/global_thread_pool_shared.rb +0 -35
  58. data/spec/concurrent/executor/immediate_executor_spec.rb +0 -12
  59. data/spec/concurrent/executor/java_cached_thread_pool_spec.rb +0 -44
  60. data/spec/concurrent/executor/java_fixed_thread_pool_spec.rb +0 -64
  61. data/spec/concurrent/executor/java_single_thread_executor_spec.rb +0 -21
  62. data/spec/concurrent/executor/java_thread_pool_executor_spec.rb +0 -71
  63. data/spec/concurrent/executor/per_thread_executor_spec.rb +0 -57
  64. data/spec/concurrent/executor/ruby_cached_thread_pool_spec.rb +0 -69
  65. data/spec/concurrent/executor/ruby_fixed_thread_pool_spec.rb +0 -39
  66. data/spec/concurrent/executor/ruby_single_thread_executor_spec.rb +0 -18
  67. data/spec/concurrent/executor/ruby_thread_pool_executor_spec.rb +0 -171
  68. data/spec/concurrent/executor/safe_task_executor_spec.rb +0 -103
  69. data/spec/concurrent/executor/thread_pool_class_cast_spec.rb +0 -52
  70. data/spec/concurrent/executor/thread_pool_executor_shared.rb +0 -155
  71. data/spec/concurrent/executor/thread_pool_shared.rb +0 -269
  72. data/spec/concurrent/executor/timer_set_spec.rb +0 -183
  73. data/spec/concurrent/future_spec.rb +0 -329
  74. data/spec/concurrent/ivar_spec.rb +0 -215
  75. data/spec/concurrent/mvar_spec.rb +0 -380
  76. data/spec/concurrent/obligation_shared.rb +0 -102
  77. data/spec/concurrent/obligation_spec.rb +0 -282
  78. data/spec/concurrent/observable_shared.rb +0 -177
  79. data/spec/concurrent/observable_spec.rb +0 -56
  80. data/spec/concurrent/options_parser_spec.rb +0 -71
  81. data/spec/concurrent/promise_spec.rb +0 -367
  82. data/spec/concurrent/runnable_shared.rb +0 -68
  83. data/spec/concurrent/runnable_spec.rb +0 -235
  84. data/spec/concurrent/scheduled_task_spec.rb +0 -340
  85. data/spec/concurrent/stoppable_shared.rb +0 -37
  86. data/spec/concurrent/supervisor_spec.rb +0 -1149
  87. data/spec/concurrent/timer_task_spec.rb +0 -256
  88. data/spec/concurrent/tvar_spec.rb +0 -137
  89. data/spec/concurrent/utility/processor_count_spec.rb +0 -20
  90. data/spec/concurrent/utility/timeout_spec.rb +0 -50
  91. data/spec/concurrent/utility/timer_spec.rb +0 -52
  92. data/spec/spec_helper.rb +0 -41
  93. data/spec/support/example_group_extensions.rb +0 -52
  94. data/spec/support/less_than_or_equal_to_matcher.rb +0 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: edceac6c210ab7ac152c72f134a44e0b853d3dc8
4
- data.tar.gz: f65c0a53c67c4cfbd9d4d9f1a170a2f5af2c2cb8
3
+ metadata.gz: a37030c113bbaf5da04499b31efd48b49c8244e6
4
+ data.tar.gz: 794a39695eadb43c80668f28f8c9eb367fbd8dc3
5
5
  SHA512:
6
- metadata.gz: f256b59fa79c66e7e275b314b7e8b666350b1e79a00c81b0d9609e78920dc88c89053596cdd487d6fe375368332d8a6884b6c53112a3d8d2909eb6ea43b628d5
7
- data.tar.gz: 68b74563a9db63470d244bb63a7ee21056aad2a08fb4a37a65bac1d088d0f06ec26bfcaeaeb5be00ed3ad6ce71665eab69267255a71295b39bafbb2ca61a86f0
6
+ metadata.gz: c99611c6311e743524a1769f6c1a663be7cee748813d772c5a5b5e7f9bdcd344c58d696e7d74dcae1c7e285fb7caa2d3e0cef0150a125e546e12474d9d1a3184
7
+ data.tar.gz: 3678784b9161c7b0f59ff608950fc2eb17887281be9ffbb842f4bde178303b0ab347d2e1b82111fd43604d4a4419354277524abe55c20222370464ad5735c85b
data/README.md CHANGED
@@ -8,7 +8,7 @@
8
8
  Modern concurrency tools for Ruby. Inspired by
9
9
  <a href="http://www.erlang.org/doc/reference_manual/processes.html">Erlang</a>,
10
10
  <a href="http://clojure.org/concurrent_programming">Clojure</a>,
11
- <a href="http://www.scala-lang.org/api/current/index.html#scala.actors.Actor">Scala</a>,
11
+ <a href="http://akka.io/">Scala</a>,
12
12
  <a href="http://www.haskell.org/haskellwiki/Applications_and_libraries/Concurrency_and_parallelism#Concurrent_Haskell">Haskell</a>,
13
13
  <a href="http://blogs.msdn.com/b/dsyme/archive/2010/02/15/async-and-parallel-design-patterns-in-f-part-3-agents.aspx">F#</a>,
14
14
  <a href="http://msdn.microsoft.com/en-us/library/vstudio/hh191443.aspx">C#</a>,
@@ -1,13 +1,15 @@
1
1
  require 'concurrent/version'
2
+
2
3
  require 'concurrent/configuration'
3
4
 
4
5
  require 'concurrent/atomics'
5
- require 'concurrent/actors'
6
6
  require 'concurrent/channels'
7
7
  require 'concurrent/collections'
8
8
  require 'concurrent/executors'
9
9
  require 'concurrent/utilities'
10
10
 
11
+ require 'concurrent/actress'
12
+ require 'concurrent/atomic'
11
13
  require 'concurrent/agent'
12
14
  require 'concurrent/async'
13
15
  require 'concurrent/dataflow'
@@ -22,13 +24,10 @@ require 'concurrent/obligation'
22
24
  require 'concurrent/observable'
23
25
  require 'concurrent/options_parser'
24
26
  require 'concurrent/promise'
25
- require 'concurrent/runnable'
26
27
  require 'concurrent/scheduled_task'
27
- require 'concurrent/stoppable'
28
28
  require 'concurrent/supervisor'
29
29
  require 'concurrent/timer_task'
30
30
  require 'concurrent/tvar'
31
- require 'concurrent/actress'
32
31
 
33
32
  # Modern concurrency tools for Ruby. Inspired by Erlang, Clojure, Scala, Haskell,
34
33
  # F#, C#, Java, and classic concurrency patterns.
@@ -0,0 +1,46 @@
1
+ require 'concurrent/atomic_reference/concurrent_update_error'
2
+ require 'concurrent/atomic_reference/mutex_atomic'
3
+
4
+ begin
5
+ # force fallback impl with FORCE_ATOMIC_FALLBACK=1
6
+ if /[^0fF]/ =~ ENV['FORCE_ATOMIC_FALLBACK']
7
+ ruby_engine = 'mutex_atomic'
8
+ else
9
+ ruby_engine = defined?(RUBY_ENGINE)? RUBY_ENGINE : 'ruby'
10
+ end
11
+
12
+ require "concurrent/atomic_reference/#{ruby_engine}"
13
+ rescue LoadError
14
+ warn 'Compiled extensions not installed, pure Ruby Atomic will be used.'
15
+ end
16
+
17
+ if defined? Concurrent::JavaAtomic
18
+
19
+ class Concurrent::Atomic < Concurrent::JavaAtomic
20
+ end
21
+
22
+ elsif defined? Concurrent::CAtomic
23
+
24
+ class Concurrent::Atomic < Concurrent::CAtomic
25
+ end
26
+
27
+ elsif defined? Concurrent::RbxAtomic
28
+
29
+ class Concurrent::Atomic < Concurrent::RbxAtomic
30
+ end
31
+
32
+ else
33
+
34
+ class Concurrent::Atomic < Concurrent::MutexAtomic
35
+ end
36
+ end
37
+
38
+ class Atomic < Concurrent::Atomic
39
+
40
+ ConcurrentUpdateError = Class.new(Concurrent::ConcurrentUpdateError)
41
+
42
+ def initialize(*args)
43
+ warn "[DEPRECATED] Please use Concurrent::Atomic instead."
44
+ super
45
+ end
46
+ end
@@ -0,0 +1,7 @@
1
+ module Concurrent
2
+
3
+ class ConcurrentUpdateError < ThreadError
4
+ # frozen pre-allocated backtrace to speed ConcurrentUpdateError
5
+ CONC_UP_ERR_BACKTRACE = ['backtrace elided; set verbose to enable'].freeze
6
+ end
7
+ end
@@ -0,0 +1,28 @@
1
+ require 'concurrent/atomic_reference/concurrent_update_error'
2
+
3
+ module Concurrent
4
+
5
+ # Define update methods that delegate to @ref field
6
+ class Atomic
7
+ # Pass the current value to the given block, replacing it
8
+ # with the block's result. May retry if the value changes
9
+ # during the block's execution.
10
+ def update
11
+ true until @ref.compare_and_set(old_value = @ref.get, new_value = yield(old_value))
12
+ new_value
13
+ end
14
+
15
+ def try_update
16
+ old_value = @ref.get
17
+ new_value = yield old_value
18
+ unless @ref.compare_and_set(old_value, new_value)
19
+ if $VERBOSE
20
+ raise ConcurrentUpdateError, "Update failed"
21
+ else
22
+ raise ConcurrentUpdateError, "Update failed", ConcurrentUpdateError::CONC_UP_ERR_BACKTRACE
23
+ end
24
+ end
25
+ new_value
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,28 @@
1
+ require 'concurrent/atomic_reference/concurrent_update_error'
2
+
3
+ module Concurrent
4
+
5
+ # Define update methods that use direct paths
6
+ module AtomicDirectUpdate
7
+ # Pass the current value to the given block, replacing it
8
+ # with the block's result. May retry if the value changes
9
+ # during the block's execution.
10
+ def update
11
+ true until compare_and_set(old_value = get, new_value = yield(old_value))
12
+ new_value
13
+ end
14
+
15
+ def try_update
16
+ old_value = get
17
+ new_value = yield old_value
18
+ unless compare_and_set(old_value, new_value)
19
+ if $VERBOSE
20
+ raise ConcurrentUpdateError, "Update failed"
21
+ else
22
+ raise ConcurrentUpdateError, "Update failed", ConcurrentUpdateError::CONC_UP_ERR_BACKTRACE
23
+ end
24
+ end
25
+ new_value
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,8 @@
1
+ require 'concurrent_ruby_ext'
2
+ require 'concurrent/atomic_reference/direct_update'
3
+
4
+ module Concurrent
5
+ class JavaAtomic
6
+ include Concurrent::AtomicDirectUpdate
7
+ end
8
+ end
@@ -0,0 +1,47 @@
1
+ require 'thread'
2
+ require 'concurrent/atomic_reference/direct_update'
3
+ require 'concurrent/atomic_reference/numeric_cas_wrapper'
4
+
5
+ module Concurrent
6
+
7
+ # Portable/generic (but not very memory or scheduling-efficient) fallback
8
+ class MutexAtomic #:nodoc: all
9
+ include Concurrent::AtomicDirectUpdate
10
+ include Concurrent::AtomicNumericCompareAndSetWrapper
11
+
12
+ def initialize(value = nil)
13
+ @mutex = Mutex.new
14
+ @value = value
15
+ end
16
+
17
+ def get
18
+ @mutex.synchronize { @value }
19
+ end
20
+ alias value get
21
+
22
+ def set(new_value)
23
+ @mutex.synchronize { @value = new_value }
24
+ end
25
+ alias value= set
26
+
27
+ def get_and_set(new_value)
28
+ @mutex.synchronize do
29
+ old_value = @value
30
+ @value = new_value
31
+ old_value
32
+ end
33
+ end
34
+ alias swap get_and_set
35
+
36
+ def _compare_and_set(old_value, new_value)
37
+ return false unless @mutex.try_lock
38
+ begin
39
+ return false unless @value.equal? old_value
40
+ @value = new_value
41
+ ensure
42
+ @mutex.unlock
43
+ end
44
+ true
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,24 @@
1
+ module Concurrent
2
+
3
+ module AtomicNumericCompareAndSetWrapper
4
+ #alias _compare_and_set compare_and_set
5
+
6
+ def compare_and_set(expected, new)
7
+ if expected.kind_of? Numeric
8
+ while true
9
+ old = get
10
+
11
+ return false unless old.kind_of? Numeric
12
+
13
+ return false unless old == expected
14
+
15
+ result = _compare_and_set(old, new)
16
+ return result if result
17
+ end
18
+ else
19
+ _compare_and_set(expected, new)
20
+ end
21
+ end
22
+ alias compare_and_swap compare_and_set
23
+ end
24
+ end
@@ -0,0 +1,16 @@
1
+ require 'concurrent/atomic_reference/direct_update'
2
+ require 'concurrent/atomic_reference/numeric_cas_wrapper'
3
+
4
+ module Concurrent
5
+
6
+ # extend Rubinius's version adding aliases and numeric logic
7
+ class RbxAtomic < Rubinius::AtomicReference
8
+ alias _compare_and_set compare_and_set
9
+ include Concurrent::AtomicDirectUpdate
10
+ include Concurrent::AtomicNumericCompareAndSetWrapper
11
+
12
+ alias value get
13
+ alias value= set
14
+ alias swap get_and_set
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ begin
2
+ require 'concurrent_ruby_ext'
3
+ rescue LoadError
4
+ # may be a Windows cross-compiled native gem
5
+ require "#{RUBY_VERSION[0..2]}/concurrent_ruby_ext"
6
+ end
7
+
8
+ require 'concurrent/atomic_reference/direct_update'
9
+ require 'concurrent/atomic_reference/numeric_cas_wrapper'
10
+
11
+ module Concurrent
12
+ class CAtomic
13
+ include Concurrent::AtomicDirectUpdate
14
+ include Concurrent::AtomicNumericCompareAndSetWrapper
15
+ end
16
+ end
@@ -1,4 +1,4 @@
1
- require 'concurrent/atomic/atomic'
1
+ require 'concurrent/atomic'
2
2
  require 'concurrent/atomic/atomic_boolean'
3
3
  require 'concurrent/atomic/atomic_fixnum'
4
4
  require 'concurrent/atomic/condition'
@@ -1,7 +1,7 @@
1
1
  require 'thread'
2
2
  require 'concurrent/delay'
3
3
  require 'concurrent/errors'
4
- require 'concurrent/atomic/atomic'
4
+ require 'concurrent/atomic'
5
5
  require 'concurrent/executor/thread_pool_executor'
6
6
  require 'concurrent/executor/timer_set'
7
7
  require 'concurrent/utility/processor_count'
@@ -1,7 +1,6 @@
1
1
  require 'thread'
2
2
 
3
3
  require 'concurrent/errors'
4
- require 'concurrent/runnable'
5
4
 
6
5
  module Concurrent
7
6
 
@@ -61,6 +60,7 @@ module Concurrent
61
60
  alias_method :max_t, :max_time
62
61
 
63
62
  def initialize(opts = {})
63
+ warn '[EXPERIMENTAL] Supervisor is being completely rewritten and will change soon.'
64
64
  @restart_strategy = opts[:restart_strategy] || opts[:strategy] || :one_for_one
65
65
  @monitor_interval = (opts[:monitor_interval] || DEFAULT_MONITOR_INTERVAL).to_f
66
66
  @max_restart = (opts[:max_restart] || opts[:max_r] || DEFAULT_MAX_RESTART).to_i
@@ -4,9 +4,6 @@ require 'concurrent/atomic/atomic_boolean'
4
4
  require 'concurrent/executor/executor'
5
5
  require 'concurrent/executor/safe_task_executor'
6
6
 
7
- # deprecated Updated to use `Executor` instead of `Runnable`
8
- require 'concurrent/runnable'
9
-
10
7
  module Concurrent
11
8
 
12
9
  # A very common currency pattern is to run a thread that performs a task at regular
@@ -295,32 +292,6 @@ module Concurrent
295
292
  end
296
293
  end
297
294
 
298
- # @deprecated Updated to use `Executor` instead of `Runnable`
299
- def terminate(*args) deprecated(:terminate, :kill, *args); end
300
-
301
- # @deprecated Updated to use `Executor` instead of `Runnable`
302
- def stop(*args) deprecated(:stop, :shutdown, *args); end
303
-
304
- # @deprecated Updated to use `Executor` instead of `Runnable`
305
- def cancel(*args) deprecated(:cancel, :shutdown, *args); end
306
-
307
- # @deprecated Updated to use `Executor` instead of `Runnable`
308
- def run!(*args) deprecated(:run!, :execute); end
309
-
310
- # @deprecated Updated to use `Executor` instead of `Runnable`
311
- def self.run!(*args, &block)
312
- warn "[DEPRECATED] `run!` is deprecated, please use `execute` instead."
313
- Concurrent::Runnable::Context.new(TimerTask.new(*args, &block))
314
- end
315
-
316
- # @deprecated Updated to use `Executor` instead of `Runnable`
317
- def run
318
- raise Concurrent::Runnable::LifecycleError.new('already running') if @running.true?
319
- self.execute
320
- self.wait_for_termination
321
- true
322
- end
323
-
324
295
  private :post, :<<
325
296
 
326
297
  protected
@@ -366,12 +337,5 @@ module Concurrent
366
337
  observers.notify_observers(Time.now, nil, Concurrent::TimeoutError.new)
367
338
  end
368
339
  end
369
-
370
- # @deprecated Updated to use `Executor` instead of `Runnable`
371
- # @!visibility private
372
- def deprecated(old, new, *args)
373
- warn "[DEPRECATED] `#{old}` is deprecated, please use `#{new}` instead."
374
- self.send(new, *args)
375
- end
376
340
  end
377
341
  end
@@ -1,3 +1,3 @@
1
1
  module Concurrent
2
- VERSION = '0.6.1'
2
+ VERSION = '0.7.0.rc0'
3
3
  end
@@ -0,0 +1,9 @@
1
+ require 'rbconfig'
2
+
3
+ module Concurrent
4
+ def self.use_c_extensions?
5
+ host_os = RbConfig::CONFIG['host_os']
6
+ ruby_name = RbConfig::CONFIG['ruby_install_name']
7
+ (ruby_name =~ /^ruby$/i || host_os =~ /mswin32/i || host_os =~ /mingw32/i)
8
+ end
9
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: concurrent-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.7.0.rc0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jerry D'Antonio
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-14 00:00:00.000000000 Z
11
+ date: 2014-06-18 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: |2
14
14
  Modern concurrency tools including agents, futures, promises, thread pools, actors, supervisors, and more.
@@ -23,9 +23,6 @@ files:
23
23
  - LICENSE.txt
24
24
  - README.md
25
25
  - lib/concurrent.rb
26
- - lib/concurrent/actor/actor.rb
27
- - lib/concurrent/actor/postable.rb
28
- - lib/concurrent/actors.rb
29
26
  - lib/concurrent/actress.rb
30
27
  - lib/concurrent/actress/ad_hoc.rb
31
28
  - lib/concurrent/actress/context.rb
@@ -37,7 +34,7 @@ files:
37
34
  - lib/concurrent/actress/type_check.rb
38
35
  - lib/concurrent/agent.rb
39
36
  - lib/concurrent/async.rb
40
- - lib/concurrent/atomic/atomic.rb
37
+ - lib/concurrent/atomic.rb
41
38
  - lib/concurrent/atomic/atomic_boolean.rb
42
39
  - lib/concurrent/atomic/atomic_fixnum.rb
43
40
  - lib/concurrent/atomic/condition.rb
@@ -47,6 +44,14 @@ files:
47
44
  - lib/concurrent/atomic/cyclic_barrier.rb
48
45
  - lib/concurrent/atomic/event.rb
49
46
  - lib/concurrent/atomic/thread_local_var.rb
47
+ - lib/concurrent/atomic_reference/concurrent_update_error.rb
48
+ - lib/concurrent/atomic_reference/delegated_update.rb
49
+ - lib/concurrent/atomic_reference/direct_update.rb
50
+ - lib/concurrent/atomic_reference/jruby.rb
51
+ - lib/concurrent/atomic_reference/mutex_atomic.rb
52
+ - lib/concurrent/atomic_reference/numeric_cas_wrapper.rb
53
+ - lib/concurrent/atomic_reference/rbx.rb
54
+ - lib/concurrent/atomic_reference/ruby.rb
50
55
  - lib/concurrent/atomics.rb
51
56
  - lib/concurrent/channel/buffered_channel.rb
52
57
  - lib/concurrent/channel/channel.rb
@@ -91,9 +96,7 @@ files:
91
96
  - lib/concurrent/observable.rb
92
97
  - lib/concurrent/options_parser.rb
93
98
  - lib/concurrent/promise.rb
94
- - lib/concurrent/runnable.rb
95
99
  - lib/concurrent/scheduled_task.rb
96
- - lib/concurrent/stoppable.rb
97
100
  - lib/concurrent/supervisor.rb
98
101
  - lib/concurrent/timer_task.rb
99
102
  - lib/concurrent/tvar.rb
@@ -103,74 +106,8 @@ files:
103
106
  - lib/concurrent/utility/timer.rb
104
107
  - lib/concurrent/version.rb
105
108
  - lib/concurrent_ruby.rb
106
- - spec/concurrent/actor/actor_spec.rb
107
- - spec/concurrent/actor/postable_shared.rb
108
- - spec/concurrent/actress_spec.rb
109
- - spec/concurrent/agent_spec.rb
110
- - spec/concurrent/async_spec.rb
111
- - spec/concurrent/atomic/atomic_boolean_spec.rb
112
- - spec/concurrent/atomic/atomic_fixnum_spec.rb
113
- - spec/concurrent/atomic/atomic_spec.rb
114
- - spec/concurrent/atomic/condition_spec.rb
115
- - spec/concurrent/atomic/copy_on_notify_observer_set_spec.rb
116
- - spec/concurrent/atomic/copy_on_write_observer_set_spec.rb
117
- - spec/concurrent/atomic/count_down_latch_spec.rb
118
- - spec/concurrent/atomic/cyclic_barrier_spec.rb
119
- - spec/concurrent/atomic/event_spec.rb
120
- - spec/concurrent/atomic/observer_set_shared.rb
121
- - spec/concurrent/atomic/thread_local_var_spec.rb
122
- - spec/concurrent/channel/buffered_channel_spec.rb
123
- - spec/concurrent/channel/channel_spec.rb
124
- - spec/concurrent/channel/probe_spec.rb
125
- - spec/concurrent/channel/unbuffered_channel_spec.rb
126
- - spec/concurrent/collection/blocking_ring_buffer_spec.rb
127
- - spec/concurrent/collection/priority_queue_spec.rb
128
- - spec/concurrent/collection/ring_buffer_spec.rb
129
- - spec/concurrent/configuration_spec.rb
130
- - spec/concurrent/dataflow_spec.rb
131
- - spec/concurrent/delay_spec.rb
132
- - spec/concurrent/dereferenceable_shared.rb
133
- - spec/concurrent/exchanger_spec.rb
134
- - spec/concurrent/executor/cached_thread_pool_shared.rb
135
- - spec/concurrent/executor/fixed_thread_pool_shared.rb
136
- - spec/concurrent/executor/global_thread_pool_shared.rb
137
- - spec/concurrent/executor/immediate_executor_spec.rb
138
- - spec/concurrent/executor/java_cached_thread_pool_spec.rb
139
- - spec/concurrent/executor/java_fixed_thread_pool_spec.rb
140
- - spec/concurrent/executor/java_single_thread_executor_spec.rb
141
- - spec/concurrent/executor/java_thread_pool_executor_spec.rb
142
- - spec/concurrent/executor/per_thread_executor_spec.rb
143
- - spec/concurrent/executor/ruby_cached_thread_pool_spec.rb
144
- - spec/concurrent/executor/ruby_fixed_thread_pool_spec.rb
145
- - spec/concurrent/executor/ruby_single_thread_executor_spec.rb
146
- - spec/concurrent/executor/ruby_thread_pool_executor_spec.rb
147
- - spec/concurrent/executor/safe_task_executor_spec.rb
148
- - spec/concurrent/executor/thread_pool_class_cast_spec.rb
149
- - spec/concurrent/executor/thread_pool_executor_shared.rb
150
- - spec/concurrent/executor/thread_pool_shared.rb
151
- - spec/concurrent/executor/timer_set_spec.rb
152
- - spec/concurrent/future_spec.rb
153
- - spec/concurrent/ivar_spec.rb
154
- - spec/concurrent/mvar_spec.rb
155
- - spec/concurrent/obligation_shared.rb
156
- - spec/concurrent/obligation_spec.rb
157
- - spec/concurrent/observable_shared.rb
158
- - spec/concurrent/observable_spec.rb
159
- - spec/concurrent/options_parser_spec.rb
160
- - spec/concurrent/promise_spec.rb
161
- - spec/concurrent/runnable_shared.rb
162
- - spec/concurrent/runnable_spec.rb
163
- - spec/concurrent/scheduled_task_spec.rb
164
- - spec/concurrent/stoppable_shared.rb
165
- - spec/concurrent/supervisor_spec.rb
166
- - spec/concurrent/timer_task_spec.rb
167
- - spec/concurrent/tvar_spec.rb
168
- - spec/concurrent/utility/processor_count_spec.rb
169
- - spec/concurrent/utility/timeout_spec.rb
170
- - spec/concurrent/utility/timer_spec.rb
171
- - spec/spec_helper.rb
172
- - spec/support/example_group_extensions.rb
173
- - spec/support/less_than_or_equal_to_matcher.rb
109
+ - lib/concurrent_ruby_ext.so
110
+ - lib/extension_helper.rb
174
111
  homepage: http://www.concurrent-ruby.com
175
112
  licenses:
176
113
  - MIT
@@ -186,9 +123,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
186
123
  version: 1.9.3
187
124
  required_rubygems_version: !ruby/object:Gem::Requirement
188
125
  requirements:
189
- - - ">="
126
+ - - ">"
190
127
  - !ruby/object:Gem::Version
191
- version: '0'
128
+ version: 1.3.1
192
129
  requirements: []
193
130
  rubyforge_project:
194
131
  rubygems_version: 2.2.2
@@ -196,73 +133,4 @@ signing_key:
196
133
  specification_version: 4
197
134
  summary: Modern concurrency tools for Ruby. Inspired by Erlang, Clojure, Scala, Haskell,
198
135
  F#, C#, Java, and classic concurrency patterns.
199
- test_files:
200
- - spec/concurrent/actor/actor_spec.rb
201
- - spec/concurrent/actor/postable_shared.rb
202
- - spec/concurrent/actress_spec.rb
203
- - spec/concurrent/agent_spec.rb
204
- - spec/concurrent/async_spec.rb
205
- - spec/concurrent/atomic/atomic_boolean_spec.rb
206
- - spec/concurrent/atomic/atomic_fixnum_spec.rb
207
- - spec/concurrent/atomic/atomic_spec.rb
208
- - spec/concurrent/atomic/condition_spec.rb
209
- - spec/concurrent/atomic/copy_on_notify_observer_set_spec.rb
210
- - spec/concurrent/atomic/copy_on_write_observer_set_spec.rb
211
- - spec/concurrent/atomic/count_down_latch_spec.rb
212
- - spec/concurrent/atomic/cyclic_barrier_spec.rb
213
- - spec/concurrent/atomic/event_spec.rb
214
- - spec/concurrent/atomic/observer_set_shared.rb
215
- - spec/concurrent/atomic/thread_local_var_spec.rb
216
- - spec/concurrent/channel/buffered_channel_spec.rb
217
- - spec/concurrent/channel/channel_spec.rb
218
- - spec/concurrent/channel/probe_spec.rb
219
- - spec/concurrent/channel/unbuffered_channel_spec.rb
220
- - spec/concurrent/collection/blocking_ring_buffer_spec.rb
221
- - spec/concurrent/collection/priority_queue_spec.rb
222
- - spec/concurrent/collection/ring_buffer_spec.rb
223
- - spec/concurrent/configuration_spec.rb
224
- - spec/concurrent/dataflow_spec.rb
225
- - spec/concurrent/delay_spec.rb
226
- - spec/concurrent/dereferenceable_shared.rb
227
- - spec/concurrent/exchanger_spec.rb
228
- - spec/concurrent/executor/cached_thread_pool_shared.rb
229
- - spec/concurrent/executor/fixed_thread_pool_shared.rb
230
- - spec/concurrent/executor/global_thread_pool_shared.rb
231
- - spec/concurrent/executor/immediate_executor_spec.rb
232
- - spec/concurrent/executor/java_cached_thread_pool_spec.rb
233
- - spec/concurrent/executor/java_fixed_thread_pool_spec.rb
234
- - spec/concurrent/executor/java_single_thread_executor_spec.rb
235
- - spec/concurrent/executor/java_thread_pool_executor_spec.rb
236
- - spec/concurrent/executor/per_thread_executor_spec.rb
237
- - spec/concurrent/executor/ruby_cached_thread_pool_spec.rb
238
- - spec/concurrent/executor/ruby_fixed_thread_pool_spec.rb
239
- - spec/concurrent/executor/ruby_single_thread_executor_spec.rb
240
- - spec/concurrent/executor/ruby_thread_pool_executor_spec.rb
241
- - spec/concurrent/executor/safe_task_executor_spec.rb
242
- - spec/concurrent/executor/thread_pool_class_cast_spec.rb
243
- - spec/concurrent/executor/thread_pool_executor_shared.rb
244
- - spec/concurrent/executor/thread_pool_shared.rb
245
- - spec/concurrent/executor/timer_set_spec.rb
246
- - spec/concurrent/future_spec.rb
247
- - spec/concurrent/ivar_spec.rb
248
- - spec/concurrent/mvar_spec.rb
249
- - spec/concurrent/obligation_shared.rb
250
- - spec/concurrent/obligation_spec.rb
251
- - spec/concurrent/observable_shared.rb
252
- - spec/concurrent/observable_spec.rb
253
- - spec/concurrent/options_parser_spec.rb
254
- - spec/concurrent/promise_spec.rb
255
- - spec/concurrent/runnable_shared.rb
256
- - spec/concurrent/runnable_spec.rb
257
- - spec/concurrent/scheduled_task_spec.rb
258
- - spec/concurrent/stoppable_shared.rb
259
- - spec/concurrent/supervisor_spec.rb
260
- - spec/concurrent/timer_task_spec.rb
261
- - spec/concurrent/tvar_spec.rb
262
- - spec/concurrent/utility/processor_count_spec.rb
263
- - spec/concurrent/utility/timeout_spec.rb
264
- - spec/concurrent/utility/timer_spec.rb
265
- - spec/spec_helper.rb
266
- - spec/support/example_group_extensions.rb
267
- - spec/support/less_than_or_equal_to_matcher.rb
268
- has_rdoc:
136
+ test_files: []