concurrent-ruby 1.0.0.pre5 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ce52e17c1838d75c89822e42bdeee79df25ce25a
4
- data.tar.gz: 801d6c3194364d5854ecc4d6a00165d5ae604494
3
+ metadata.gz: 2d453d5a3a329cb31a092efc32c4525fcdfa89eb
4
+ data.tar.gz: 7cc6fd6b7d77c27182ab24a41e0df972b188f6a4
5
5
  SHA512:
6
- metadata.gz: 3f170a4801f643440e0aa6d36f1a14f4285c83462b6d3b455ae0674ee3d30d9aa1c706edaf99b60ff158ca0bbf0679e87cab9ed12a9324e4bae4306ea5dd6d5b
7
- data.tar.gz: 062520ed68fb0f9b7b322fc33c06d2f3cc2aa55d65126de60a79161976544fca78bb9db366c971c74d4b94682db38ad69d714cce9de3de8dba5f9497f5c9dd3d
6
+ metadata.gz: 846bf05bc551466a21bc36bfc4334d572e7f5eac66ccf2a3fdab0c0c33a81b8b76bb37a6037056a975f985ca4cc8367dcd2f7132a7ff2ea7b6ad225f61e8bbf5
7
+ data.tar.gz: f7141b245f69ce70bdcdb7f9370b9a349c668a1bef6c64ed67be987a48d49c2d991bdf2917dff9c57c8f74b656ea98b147a029cdc0012823132c812b6b2d9afe
@@ -1,7 +1,8 @@
1
- ### Upcoming Release v1.0.0 (TBD)
2
-
3
- ## Current Release v1.0.0.pre5 (04 November 2015)
1
+ ## Current Release v1.0.0 (13 November 2015)
4
2
 
3
+ * Rename `attr_volatile_with_cas` to `attr_atomic`
4
+ * Add `clear_each` to `LockFreeStack`
5
+ * Update `AtomicReference` documentation
5
6
  * Further updates and improvements to the synchronization layer.
6
7
  * Performance and memory usage performance with `Actor` logging.
7
8
  * Fixed `ThreadPoolExecutor` task count methods.
@@ -9,9 +10,6 @@
9
10
  * Fixed bug in `LockFreeLinkedSet`.
10
11
  * Fixed bug in which `Agent#await` triggered a validation failure.
11
12
  * Further `Channel` updates.
12
-
13
- ### Release v1.0.0.pre4 (08 October 2015)
14
-
15
13
  * Adopted a project Code of Conduct
16
14
  * Cleared interpreter warnings
17
15
  * Fixed bug in `ThreadPoolExecutor` task count methods
@@ -19,18 +17,12 @@
19
17
  * Improved Java extension loading
20
18
  * Handle Exception children in Edge::Future
21
19
  * Continued improvements to channel
22
-
23
- ### Release v1.0.0.pre3 (29 September 2015)
24
-
25
20
  * Removed interpreter warnings.
26
21
  * Shared constants now in `lib/concurrent/constants.rb`
27
22
  * Refactored many tests.
28
23
  * Improved synchronization layer/memory model documentation.
29
24
  * Bug fix in Edge `Future#flat`
30
25
  * Brand new `Channel` implementation in Edge gem.
31
-
32
- ### Release v1.0.0.pre2 (19 September 2015)
33
-
34
26
  * Simplification of `RubySingleThreadExecutor`
35
27
  * `Async` improvements
36
28
  - Each object uses its own `SingleThreadExecutor` instead of the global thread pool.
@@ -42,9 +34,6 @@
42
34
  - Added a `#reset` method
43
35
  * Brand new `Agent` API and implementation. Now functionally equivalent to Clojure.
44
36
  * Continued improvements to the synchronization layer
45
-
46
- ### Release v1.0.0.pre1 (19 August 2015)
47
-
48
37
  * Merged in the `thread_safe` gem
49
38
  - `Concurrent::Array`
50
39
  - `Concurrent::Hash`
@@ -95,7 +95,7 @@ module Concurrent
95
95
  include Concern::Observable
96
96
 
97
97
  safe_initialization!
98
- private(*attr_volatile_with_cas(:value))
98
+ private(*attr_atomic(:value))
99
99
  public :value
100
100
 
101
101
  # Create a new atom with the given initial value.
@@ -1,6 +1,7 @@
1
1
  # @!macro [new] atomic_reference
2
2
  #
3
- # An object reference that may be updated atomically.
3
+ # An object reference that may be updated atomically. All read and write
4
+ # operations have java volatile semantic.
4
5
  #
5
6
  # @!macro thread_safe_variable_comparison
6
7
  #
@@ -143,7 +143,7 @@ module Concurrent
143
143
  safe_initialization!
144
144
 
145
145
  class Node < Concurrent::Synchronization::Object
146
- attr_volatile_with_cas :value
146
+ attr_atomic :value
147
147
  safe_initialization!
148
148
 
149
149
  def initialize(item)
@@ -170,7 +170,7 @@ module Concurrent
170
170
 
171
171
  private
172
172
 
173
- attr_volatile_with_cas(:slot)
173
+ attr_atomic(:slot)
174
174
 
175
175
  # @!macro exchanger_method_do_exchange
176
176
  #
@@ -18,7 +18,7 @@ module Concurrent
18
18
  # @!macro edge_warning
19
19
  class LazyRegister < Synchronization::Object
20
20
 
21
- private(*attr_volatile_with_cas(:data))
21
+ private(*attr_atomic(:data))
22
22
 
23
23
  def initialize
24
24
  super
@@ -18,7 +18,7 @@ module Concurrent
18
18
  # Abstract object providing final, volatile, ans CAS extensions to build other concurrent abstractions.
19
19
  # - final instance variables see {Object.safe_initialization!}
20
20
  # - volatile instance variables see {Object.attr_volatile}
21
- # - volatile instance variables see {Object.attr_volatile_with_cas}
21
+ # - volatile instance variables see {Object.attr_atomic}
22
22
  class Object < ObjectImplementation
23
23
 
24
24
  # @!method self.attr_volatile(*names)
@@ -87,14 +87,14 @@ module Concurrent
87
87
  # `compare_and_set_value(expected, value) #=> true || false`, `update_value(&block)`.
88
88
  # @param [Array<Symbol>] names of the instance variables to be volatile with CAS.
89
89
  # @return [Array<Symbol>] names of defined method names.
90
- def self.attr_volatile_with_cas(*names)
90
+ def self.attr_atomic(*names)
91
91
  @volatile_cas_fields ||= []
92
92
  @volatile_cas_fields += names
93
93
  safe_initialization!
94
94
  define_initialize_volatile_with_cas
95
95
 
96
96
  names.each do |name|
97
- ivar = :"@VolatileCas#{name.to_s.gsub(/(?:^|_)(.)/) { $1.upcase }}"
97
+ ivar = :"@Atomic#{name.to_s.gsub(/(?:^|_)(.)/) { $1.upcase }}"
98
98
  class_eval <<-RUBY, __FILE__, __LINE__ + 1
99
99
  def #{name}
100
100
  #{ivar}.get
@@ -131,7 +131,7 @@ module Concurrent
131
131
  private
132
132
 
133
133
  def self.define_initialize_volatile_with_cas
134
- assignments = @volatile_cas_fields.map { |name| "@VolatileCas#{name.to_s.gsub(/(?:^|_)(.)/) { $1.upcase }} = AtomicReference.new(nil)" }.join("\n")
134
+ assignments = @volatile_cas_fields.map { |name| "@Atomic#{name.to_s.gsub(/(?:^|_)(.)/) { $1.upcase }} = AtomicReference.new(nil)" }.join("\n")
135
135
  class_eval <<-RUBY
136
136
  def initialize_volatile_with_cas
137
137
  super
@@ -1,4 +1,4 @@
1
1
  module Concurrent
2
- VERSION = '1.0.0.pre5'
3
- EDGE_VERSION = '0.2.0.pre5'
2
+ VERSION = '1.0.0'
3
+ EDGE_VERSION = '0.2.0'
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: concurrent-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.pre5
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jerry D'Antonio
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-11-04 00:00:00.000000000 Z
12
+ date: 2015-11-13 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: |
15
15
  Modern concurrency tools including agents, futures, promises, thread pools, actors, supervisors, and more.
@@ -162,9 +162,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
162
162
  version: 1.9.3
163
163
  required_rubygems_version: !ruby/object:Gem::Requirement
164
164
  requirements:
165
- - - ">"
165
+ - - ">="
166
166
  - !ruby/object:Gem::Version
167
- version: 1.3.1
167
+ version: '0'
168
168
  requirements: []
169
169
  rubyforge_project:
170
170
  rubygems_version: 2.4.8