diff --git a/Library/Homebrew/vendor/bundle/bundler/setup.rb b/Library/Homebrew/vendor/bundle/bundler/setup.rb index 2002778342..f7c37be144 100644 --- a/Library/Homebrew/vendor/bundle/bundler/setup.rb +++ b/Library/Homebrew/vendor/bundle/bundler/setup.rb @@ -3,7 +3,7 @@ require 'rbconfig' ruby_engine = defined?(RUBY_ENGINE) ? RUBY_ENGINE : 'ruby' ruby_version = RbConfig::CONFIG["ruby_version"] path = File.expand_path('..', __FILE__) -$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/concurrent-ruby-1.1.4/lib" +$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/concurrent-ruby-1.1.5/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/i18n-1.6.0/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/minitest-5.11.3/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/thread_safe-0.3.6/lib" diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/version.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/version.rb deleted file mode 100644 index 4acc1d55ea..0000000000 --- a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/version.rb +++ /dev/null @@ -1,4 +0,0 @@ -module Concurrent - VERSION = '1.1.4' - EDGE_VERSION = '0.4.1' -end diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent-ruby.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent-ruby.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent-ruby.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent-ruby.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/agent.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/agent.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/agent.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/agent.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/array.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/array.rb similarity index 91% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/array.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/array.rb index 56931794ba..18e58e5b2f 100644 --- a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/array.rb +++ b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/array.rb @@ -21,8 +21,9 @@ module Concurrent # @!macro internal_implementation_note ArrayImplementation = case when Concurrent.on_cruby? - # Because MRI never runs code in parallel, the existing - # non-thread-safe structures should usually work fine. + # Array is thread-safe in practice because CRuby runs + # threads one at a time and does not do context + # switching during the execution of C functions. ::Array when Concurrent.on_jruby? @@ -63,4 +64,3 @@ module Concurrent end end - diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/async.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/async.rb similarity index 97% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/async.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/async.rb index 9e75ca92e6..8fd4886cdd 100644 --- a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/async.rb +++ b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/async.rb @@ -333,6 +333,13 @@ module Concurrent ivar end + # Check whether the method is responsive + # + # @param [Symbol] method the method being called + def respond_to_missing?(method, include_private = false) + @delegate.respond_to?(method) || super + end + # Perform all enqueued tasks. # # This method must be called from within the executor. It must not be @@ -383,6 +390,13 @@ module Concurrent ivar.wait ivar end + + # Check whether the method is responsive + # + # @param [Symbol] method the method being called + def respond_to_missing?(method, include_private = false) + @delegate.respond_to?(method) || super + end end private_constant :AwaitDelegator diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atom.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atom.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atom.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atom.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/abstract_thread_local_var.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/abstract_thread_local_var.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/abstract_thread_local_var.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/abstract_thread_local_var.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/atomic_boolean.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/atomic_boolean.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/atomic_boolean.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/atomic_boolean.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/atomic_fixnum.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/atomic_fixnum.rb similarity index 98% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/atomic_fixnum.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/atomic_fixnum.rb index 553aae06e5..c67166d833 100644 --- a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/atomic_fixnum.rb +++ b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/atomic_fixnum.rb @@ -79,10 +79,10 @@ module Concurrent # @!method value=(value) # @!macro atomic_fixnum_method_value_set # - # @!method increment(delta) + # @!method increment(delta = 1) # @!macro atomic_fixnum_method_increment # - # @!method decrement(delta) + # @!method decrement(delta = 1) # @!macro atomic_fixnum_method_decrement # # @!method compare_and_set(expect, update) diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/atomic_markable_reference.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/atomic_markable_reference.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/atomic_markable_reference.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/atomic_markable_reference.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/atomic_reference.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/atomic_reference.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/atomic_reference.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/atomic_reference.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/count_down_latch.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/count_down_latch.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/count_down_latch.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/count_down_latch.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/cyclic_barrier.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/cyclic_barrier.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/cyclic_barrier.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/cyclic_barrier.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/event.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/event.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/event.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/event.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/java_count_down_latch.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/java_count_down_latch.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/java_count_down_latch.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/java_count_down_latch.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/java_thread_local_var.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/java_thread_local_var.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/java_thread_local_var.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/java_thread_local_var.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/mutex_atomic_boolean.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/mutex_atomic_boolean.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/mutex_atomic_boolean.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/mutex_atomic_boolean.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/mutex_atomic_fixnum.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/mutex_atomic_fixnum.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/mutex_atomic_fixnum.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/mutex_atomic_fixnum.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/mutex_count_down_latch.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/mutex_count_down_latch.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/mutex_count_down_latch.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/mutex_count_down_latch.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/mutex_semaphore.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/mutex_semaphore.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/mutex_semaphore.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/mutex_semaphore.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/read_write_lock.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/read_write_lock.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/read_write_lock.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/read_write_lock.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/reentrant_read_write_lock.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/reentrant_read_write_lock.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/reentrant_read_write_lock.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/reentrant_read_write_lock.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/ruby_thread_local_var.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/ruby_thread_local_var.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/ruby_thread_local_var.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/ruby_thread_local_var.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/semaphore.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/semaphore.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/semaphore.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/semaphore.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/thread_local_var.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/thread_local_var.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/thread_local_var.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic/thread_local_var.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic_reference/mutex_atomic.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic_reference/mutex_atomic.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic_reference/mutex_atomic.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic_reference/mutex_atomic.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic_reference/numeric_cas_wrapper.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic_reference/numeric_cas_wrapper.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic_reference/numeric_cas_wrapper.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomic_reference/numeric_cas_wrapper.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomics.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomics.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomics.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/atomics.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/collection/copy_on_notify_observer_set.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/collection/copy_on_notify_observer_set.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/collection/copy_on_notify_observer_set.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/collection/copy_on_notify_observer_set.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/collection/copy_on_write_observer_set.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/collection/copy_on_write_observer_set.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/collection/copy_on_write_observer_set.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/collection/copy_on_write_observer_set.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/collection/java_non_concurrent_priority_queue.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/collection/java_non_concurrent_priority_queue.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/collection/java_non_concurrent_priority_queue.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/collection/java_non_concurrent_priority_queue.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/collection/lock_free_stack.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/collection/lock_free_stack.rb similarity index 99% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/collection/lock_free_stack.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/collection/lock_free_stack.rb index 9996f78495..d003d3cf73 100644 --- a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/collection/lock_free_stack.rb +++ b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/collection/lock_free_stack.rb @@ -53,7 +53,7 @@ module Concurrent # @param [Node] head # @return [true, false] - def empty?(head = self.head) + def empty?(head = head()) head.equal? EMPTY end diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/collection/map/atomic_reference_map_backend.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/collection/map/atomic_reference_map_backend.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/collection/map/atomic_reference_map_backend.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/collection/map/atomic_reference_map_backend.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/collection/map/mri_map_backend.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/collection/map/mri_map_backend.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/collection/map/mri_map_backend.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/collection/map/mri_map_backend.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/collection/map/non_concurrent_map_backend.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/collection/map/non_concurrent_map_backend.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/collection/map/non_concurrent_map_backend.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/collection/map/non_concurrent_map_backend.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/collection/map/synchronized_map_backend.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/collection/map/synchronized_map_backend.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/collection/map/synchronized_map_backend.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/collection/map/synchronized_map_backend.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/collection/non_concurrent_priority_queue.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/collection/non_concurrent_priority_queue.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/collection/non_concurrent_priority_queue.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/collection/non_concurrent_priority_queue.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/collection/ruby_non_concurrent_priority_queue.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/collection/ruby_non_concurrent_priority_queue.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/collection/ruby_non_concurrent_priority_queue.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/collection/ruby_non_concurrent_priority_queue.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/concern/deprecation.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/concern/deprecation.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/concern/deprecation.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/concern/deprecation.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/concern/dereferenceable.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/concern/dereferenceable.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/concern/dereferenceable.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/concern/dereferenceable.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/concern/logging.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/concern/logging.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/concern/logging.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/concern/logging.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/concern/obligation.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/concern/obligation.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/concern/obligation.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/concern/obligation.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/concern/observable.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/concern/observable.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/concern/observable.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/concern/observable.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/concurrent_ruby.jar b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/concurrent_ruby.jar similarity index 79% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/concurrent_ruby.jar rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/concurrent_ruby.jar index 76eee54f2d..bf8261fae7 100644 Binary files a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/concurrent_ruby.jar and b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/concurrent_ruby.jar differ diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/configuration.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/configuration.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/configuration.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/configuration.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/constants.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/constants.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/constants.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/constants.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/dataflow.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/dataflow.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/dataflow.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/dataflow.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/delay.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/delay.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/delay.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/delay.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/errors.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/errors.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/errors.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/errors.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/exchanger.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/exchanger.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/exchanger.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/exchanger.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/abstract_executor_service.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/abstract_executor_service.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/abstract_executor_service.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/abstract_executor_service.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/cached_thread_pool.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/cached_thread_pool.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/cached_thread_pool.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/cached_thread_pool.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/executor_service.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/executor_service.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/executor_service.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/executor_service.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/fixed_thread_pool.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/fixed_thread_pool.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/fixed_thread_pool.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/fixed_thread_pool.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/immediate_executor.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/immediate_executor.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/immediate_executor.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/immediate_executor.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/indirect_immediate_executor.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/indirect_immediate_executor.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/indirect_immediate_executor.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/indirect_immediate_executor.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/java_executor_service.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/java_executor_service.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/java_executor_service.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/java_executor_service.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/java_single_thread_executor.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/java_single_thread_executor.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/java_single_thread_executor.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/java_single_thread_executor.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/java_thread_pool_executor.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/java_thread_pool_executor.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/java_thread_pool_executor.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/java_thread_pool_executor.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/ruby_executor_service.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_executor_service.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/ruby_executor_service.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_executor_service.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/ruby_single_thread_executor.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_single_thread_executor.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/ruby_single_thread_executor.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_single_thread_executor.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/ruby_thread_pool_executor.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/ruby_thread_pool_executor.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/safe_task_executor.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/safe_task_executor.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/safe_task_executor.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/safe_task_executor.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/serial_executor_service.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/serial_executor_service.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/serial_executor_service.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/serial_executor_service.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/serialized_execution.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/serialized_execution.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/serialized_execution.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/serialized_execution.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/serialized_execution_delegator.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/serialized_execution_delegator.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/serialized_execution_delegator.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/serialized_execution_delegator.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/simple_executor_service.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/simple_executor_service.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/simple_executor_service.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/simple_executor_service.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/single_thread_executor.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/single_thread_executor.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/single_thread_executor.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/single_thread_executor.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/thread_pool_executor.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/thread_pool_executor.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/thread_pool_executor.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/thread_pool_executor.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/timer_set.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/timer_set.rb similarity index 89% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/timer_set.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/timer_set.rb index bd99ef601b..364910152e 100644 --- a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/timer_set.rb +++ b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/timer_set.rb @@ -48,11 +48,9 @@ module Concurrent def post(delay, *args, &task) raise ArgumentError.new('no block given') unless block_given? return false unless running? - opts = { - executor: @task_executor, - args: args, - timer_set: self - } + opts = { executor: @task_executor, + args: args, + timer_set: self } task = ScheduledTask.execute(delay, opts, &task) # may raise exception task.unscheduled? ? false : task end @@ -74,11 +72,11 @@ module Concurrent # @param [Hash] opts the options to create the object with. # @!visibility private def ns_initialize(opts) - @queue = Collection::NonConcurrentPriorityQueue.new(order: :min) - @task_executor = Options.executor_from_options(opts) || Concurrent.global_io_executor - @timer_executor = SingleThreadExecutor.new - @condition = Event.new - @ruby_pid = $$ # detects if Ruby has forked + @queue = Collection::NonConcurrentPriorityQueue.new(order: :min) + @task_executor = Options.executor_from_options(opts) || Concurrent.global_io_executor + @timer_executor = SingleThreadExecutor.new + @condition = Event.new + @ruby_pid = $$ # detects if Ruby has forked self.auto_terminate = opts.fetch(:auto_terminate, true) end @@ -90,7 +88,7 @@ module Concurrent # # @!visibility private def post_task(task) - synchronize{ ns_post_task(task) } + synchronize { ns_post_task(task) } end # @!visibility private @@ -98,7 +96,7 @@ module Concurrent return false unless ns_running? ns_reset_if_forked if (task.initial_delay) <= 0.01 - task.executor.post{ task.process_task } + task.executor.post { task.process_task } else @queue.push(task) # only post the process method when the queue is empty @@ -116,7 +114,7 @@ module Concurrent # # @!visibility private def remove_task(task) - synchronize{ @queue.delete(task) } + synchronize { @queue.delete(task) } end # `ExecutorService` callback called during shutdown. @@ -148,7 +146,7 @@ module Concurrent task = synchronize { @condition.reset; @queue.peek } break unless task - now = Concurrent.monotonic_time + now = Concurrent.monotonic_time diff = task.schedule_time - now if diff <= 0 @@ -165,7 +163,7 @@ module Concurrent # queue now must have the same pop time, or a closer one, as # when we peeked). task = synchronize { @queue.pop } - task.executor.post{ task.process_task } + task.executor.post { task.process_task } else @condition.wait([diff, 60].min) end diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executors.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executors.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executors.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executors.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/future.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/future.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/future.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/future.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/hash.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/hash.rb similarity index 89% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/hash.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/hash.rb index 9919079f70..9816ca39a9 100644 --- a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/hash.rb +++ b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/hash.rb @@ -15,8 +15,9 @@ module Concurrent # @!macro internal_implementation_note HashImplementation = case when Concurrent.on_cruby? - # Because MRI never runs code in parallel, the existing - # non-thread-safe structures should usually work fine. + # Hash is thread-safe in practice because CRuby runs + # threads one at a time and does not do context + # switching during the execution of C functions. ::Hash when Concurrent.on_jruby? @@ -56,4 +57,3 @@ module Concurrent end end - diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/immutable_struct.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/immutable_struct.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/immutable_struct.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/immutable_struct.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/ivar.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/ivar.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/ivar.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/ivar.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/map.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/map.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/map.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/map.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/maybe.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/maybe.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/maybe.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/maybe.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/mutable_struct.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/mutable_struct.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/mutable_struct.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/mutable_struct.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/mvar.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/mvar.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/mvar.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/mvar.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/options.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/options.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/options.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/options.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/promise.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/promise.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/promise.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/promise.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/promises.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/promises.rb similarity index 79% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/promises.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/promises.rb index 5c5853ceb4..76af4d5963 100644 --- a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/promises.rb +++ b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/promises.rb @@ -43,6 +43,7 @@ module Concurrent # new. module FactoryMethods extend ReInclude + extend self module Configuration # @return [Executor, :io, :fast] the executor which is used when none is supplied @@ -92,16 +93,14 @@ module Concurrent future_on(default_executor, *args, &task) end - # @!macro promises.future-on1 - # Constructs new Future which will be resolved after block is evaluated on default executor. + # Constructs new Future which will be resolved after block is evaluated on default executor. # Evaluation begins immediately. # - # @!macro promises.future-on2 - # @!macro promises.param.default_executor - # @!macro promises.param.args - # @yield [*args] to the task. - # @!macro promise.param.task-future - # @return [Future] + # @!macro promises.param.default_executor + # @!macro promises.param.args + # @yield [*args] to the task. + # @!macro promise.param.task-future + # @return [Future] def future_on(default_executor, *args, &task) ImmediateEventPromise.new(default_executor).future.then(*args, &task) end @@ -109,6 +108,9 @@ module Concurrent # Creates resolved future with will be either fulfilled with the given value or rejection with # the given reason. # + # @param [true, false] fulfilled + # @param [Object] value + # @param [Object] reason # @!macro promises.param.default_executor # @return [Future] def resolved_future(fulfilled, value, reason, default_executor = self.default_executor) @@ -118,6 +120,7 @@ module Concurrent # Creates resolved future with will be fulfilled with the given value. # # @!macro promises.param.default_executor + # @param [Object] value # @return [Future] def fulfilled_future(value, default_executor = self.default_executor) resolved_future true, value, nil, default_executor @@ -126,6 +129,7 @@ module Concurrent # Creates resolved future with will be rejected with the given reason. # # @!macro promises.param.default_executor + # @param [Object] reason # @return [Future] def rejected_future(reason, default_executor = self.default_executor) resolved_future false, nil, reason, default_executor @@ -146,23 +150,23 @@ module Concurrent # @!macro promises.param.default_executor # @return [Event, Future] # - # @overload create(nil, default_executor = self.default_executor) + # @overload make_future(nil, default_executor = self.default_executor) # @param [nil] nil # @return [Event] resolved event. # - # @overload create(a_future, default_executor = self.default_executor) + # @overload make_future(a_future, default_executor = self.default_executor) # @param [Future] a_future # @return [Future] a future which will be resolved when a_future is. # - # @overload create(an_event, default_executor = self.default_executor) + # @overload make_future(an_event, default_executor = self.default_executor) # @param [Event] an_event # @return [Event] an event which will be resolved when an_event is. # - # @overload create(exception, default_executor = self.default_executor) + # @overload make_future(exception, default_executor = self.default_executor) # @param [Exception] exception # @return [Future] a rejected future with the exception as its reason. # - # @overload create(value, default_executor = self.default_executor) + # @overload make_future(value, default_executor = self.default_executor) # @param [Object] value when none of the above overloads fits # @return [Future] a fulfilled future with the value. def make_future(argument = nil, default_executor = self.default_executor) @@ -180,34 +184,53 @@ module Concurrent end # @!macro promises.shortcut.on - # @return [Future] + # @return [Future, Event] def delay(*args, &task) delay_on default_executor, *args, &task end - # @!macro promises.future-on1 - # The task will be evaluated only after the future is touched, see {AbstractEventFuture#touch} + # Creates new event or future which is resolved only after it is touched, + # see {Concurrent::AbstractEventFuture#touch}. # - # @!macro promises.future-on2 + # @!macro promises.param.default_executor + # @overload delay_on(default_executor, *args, &task) + # If task is provided it returns a {Future} representing the result of the task. + # @!macro promises.param.args + # @yield [*args] to the task. + # @!macro promise.param.task-future + # @return [Future] + # @overload delay_on(default_executor) + # If no task is provided, it returns an {Event} + # @return [Event] def delay_on(default_executor, *args, &task) - DelayPromise.new(default_executor).event.chain(*args, &task) + event = DelayPromise.new(default_executor).event + task ? event.chain(*args, &task) : event end # @!macro promises.shortcut.on - # @return [Future] + # @return [Future, Event] def schedule(intended_time, *args, &task) schedule_on default_executor, intended_time, *args, &task end - # @!macro promises.future-on1 - # The task is planned for execution in intended_time. + # Creates new event or future which is resolved in intended_time. # - # @!macro promises.future-on2 + # @!macro promises.param.default_executor # @!macro promises.param.intended_time # @param [Numeric, Time] intended_time `Numeric` means to run in `intended_time` seconds. # `Time` means to run on `intended_time`. + # @overload schedule_on(default_executor, intended_time, *args, &task) + # If task is provided it returns a {Future} representing the result of the task. + # @!macro promises.param.args + # @yield [*args] to the task. + # @!macro promise.param.task-future + # @return [Future] + # @overload schedule_on(default_executor, intended_time) + # If no task is provided, it returns an {Event} + # @return [Event] def schedule_on(default_executor, intended_time, *args, &task) - ScheduledPromise.new(default_executor, intended_time).event.chain(*args, &task) + event = ScheduledPromise.new(default_executor, intended_time).event + task ? event.chain(*args, &task) : event end # @!macro promises.shortcut.on @@ -259,7 +282,7 @@ module Concurrent # Creates new future which is resolved after first futures_and_or_events is resolved. # Its result equals result of the first resolved future. # @!macro promises.any-touch - # If resolved it does not propagate {AbstractEventFuture#touch}, leaving delayed + # If resolved it does not propagate {Concurrent::AbstractEventFuture#touch}, leaving delayed # futures un-executed if they are not required any more. # @!macro promises.event-conversion # @@ -311,7 +334,7 @@ module Concurrent end module InternalStates - # @private + # @!visibility private class State def resolved? raise NotImplementedError @@ -322,9 +345,7 @@ module Concurrent end end - private_constant :State - - # @private + # @!visibility private class Pending < State def resolved? false @@ -335,9 +356,11 @@ module Concurrent end end - private_constant :Pending + # @!visibility private + class Reserved < Pending + end - # @private + # @!visibility private class ResolvedWithResult < State def resolved? true @@ -368,9 +391,7 @@ module Concurrent end end - private_constant :ResolvedWithResult - - # @private + # @!visibility private class Fulfilled < ResolvedWithResult def initialize(value) @@ -398,18 +419,14 @@ module Concurrent end end - private_constant :Fulfilled - - # @private + # @!visibility private class FulfilledArray < Fulfilled def apply(args, block) block.call(*value, *args) end end - private_constant :FulfilledArray - - # @private + # @!visibility private class Rejected < ResolvedWithResult def initialize(reason) @Reason = reason @@ -436,9 +453,7 @@ module Concurrent end end - private_constant :Rejected - - # @private + # @!visibility private class PartiallyRejected < ResolvedWithResult def initialize(value, reason) super() @@ -467,24 +482,38 @@ module Concurrent end end - private_constant :PartiallyRejected - - PENDING = Pending.new + # @!visibility private + PENDING = Pending.new + # @!visibility private + RESERVED = Reserved.new + # @!visibility private RESOLVED = Fulfilled.new(nil) def RESOLVED.to_sym :resolved end - - private_constant :PENDING, :RESOLVED end private_constant :InternalStates + # @!macro promises.shortcut.event-future + # @see Event#$0 + # @see Future#$0 + + # @!macro promises.param.timeout + # @param [Numeric] timeout the maximum time in second to wait. + + # @!macro promises.warn.blocks + # @note This function potentially blocks current thread until the Future is resolved. + # Be careful it can deadlock. Try to chain instead. + # Common ancestor of {Event} and {Future} classes, many shared methods are defined here. class AbstractEventFuture < Synchronization::Object safe_initialization! - private(*attr_atomic(:internal_state) - [:internal_state]) + attr_atomic(:internal_state) + private :internal_state=, :swap_internal_state, :compare_and_set_internal_state, :update_internal_state + # @!method internal_state + # @!visibility private include InternalStates @@ -501,17 +530,6 @@ module Concurrent private :initialize - # @!macro promises.shortcut.event-future - # @see Event#$0 - # @see Future#$0 - - # @!macro promises.param.timeout - # @param [Numeric] timeout the maximum time in second to wait. - - # @!macro promises.warn.blocks - # @note This function potentially blocks current thread until the Future is resolved. - # Be careful it can deadlock. Try to chain instead. - # Returns its state. # @return [Symbol] # @@ -545,7 +563,7 @@ module Concurrent end # @!macro promises.touches - # Calls {AbstractEventFuture#touch}. + # Calls {Concurrent::AbstractEventFuture#touch}. # @!macro promises.method.wait # Wait (block the Thread) until receiver is {#resolved?}. @@ -553,7 +571,7 @@ module Concurrent # # @!macro promises.warn.blocks # @!macro promises.param.timeout - # @return [Future, true, false] self implies timeout was not used, true implies timeout was used + # @return [self, true, false] self implies timeout was not used, true implies timeout was used # and it was resolved, false implies it was not resolved within timeout. def wait(timeout = nil) result = wait_until_resolved(timeout) @@ -590,7 +608,7 @@ module Concurrent # @yield [fulfilled, value, reason, *args] to the task. # @yieldparam [true, false] fulfilled # @yieldparam [Object] value - # @yieldparam [Exception] reason + # @yieldparam [Object] reason def chain_on(executor, *args, &task) ChainPromise.new_blocked_by1(self, @DefaultExecutor, executor, args, &task).future end @@ -631,7 +649,7 @@ module Concurrent # @yield [fulfilled, value, reason, *args] to the callback. # @yieldparam [true, false] fulfilled # @yieldparam [Object] value - # @yieldparam [Exception] reason + # @yieldparam [Object] reason def on_resolution!(*args, &callback) add_callback :callback_on_resolution, args, callback end @@ -649,7 +667,7 @@ module Concurrent # @yield [fulfilled, value, reason, *args] to the callback. # @yieldparam [true, false] fulfilled # @yieldparam [Object] value - # @yieldparam [Exception] reason + # @yieldparam [Object] reason def on_resolution_using(executor, *args, &callback) add_callback :async_callback_on_resolution, executor, args, callback end @@ -665,8 +683,8 @@ module Concurrent end # @!visibility private - def resolve_with(state, raise_on_reassign = true) - if compare_and_set_internal_state(PENDING, state) + def resolve_with(state, raise_on_reassign = true, reserved = false) + if compare_and_set_internal_state(reserved ? RESERVED : PENDING, state) # go to synchronized block only if there were waiting threads @Lock.synchronize { @Condition.broadcast } unless @Waiters.value == 0 call_callbacks state @@ -719,6 +737,12 @@ module Concurrent add_callback(:callback_clear_delayed_node, node) end + # @!visibility private + def with_hidden_resolvable + # TODO (pitr-ch 10-Dec-2018): documentation, better name if in edge + self + end + private def add_callback(method, *args) @@ -907,9 +931,17 @@ module Concurrent # @!macro promises.warn.blocks # @!macro promises.warn.nil # @!macro promises.param.timeout - # @return [Object, nil] the value of the Future when fulfilled, nil on timeout or rejection. - def value(timeout = nil) - internal_state.value if wait_until_resolved timeout + # @!macro promises.param.timeout_value + # @param [Object] timeout_value a value returned by the method when it times out + # @return [Object, nil, timeout_value] the value of the Future when fulfilled, + # timeout_value on timeout, + # nil on rejection. + def value(timeout = nil, timeout_value = nil) + if wait_until_resolved timeout + internal_state.value + else + timeout_value + end end # Returns reason of future's rejection. @@ -918,9 +950,14 @@ module Concurrent # @!macro promises.warn.blocks # @!macro promises.warn.nil # @!macro promises.param.timeout - # @return [Exception, nil] nil on timeout or fulfillment. - def reason(timeout = nil) - internal_state.reason if wait_until_resolved timeout + # @!macro promises.param.timeout_value + # @return [Object, timeout_value] the reason, or timeout_value on timeout, or nil on fulfillment. + def reason(timeout = nil, timeout_value = nil) + if wait_until_resolved timeout + internal_state.reason + else + timeout_value + end end # Returns triplet fulfilled?, value, reason. @@ -928,7 +965,7 @@ module Concurrent # # @!macro promises.warn.blocks # @!macro promises.param.timeout - # @return [Array(Boolean, Object, Exception), nil] triplet of fulfilled?, value, reason, or nil + # @return [Array(Boolean, Object, Object), nil] triplet of fulfilled?, value, reason, or nil # on timeout. def result(timeout = nil) internal_state.result if wait_until_resolved timeout @@ -942,26 +979,40 @@ module Concurrent end # @!macro promises.method.value - # @return [Object, nil] the value of the Future when fulfilled, nil on timeout. + # @return [Object, nil, timeout_value] the value of the Future when fulfilled, + # or nil on rejection, + # or timeout_value on timeout. # @raise [Exception] {#reason} on rejection - def value!(timeout = nil) - internal_state.value if wait_until_resolved! timeout + def value!(timeout = nil, timeout_value = nil) + if wait_until_resolved! timeout + internal_state.value + else + timeout_value + end end # Allows rejected Future to be risen with `raise` method. + # If the reason is not an exception `Runtime.new(reason)` is returned. + # # @example # raise Promises.rejected_future(StandardError.new("boom")) - # @raise [StandardError] when raising not rejected future + # raise Promises.rejected_future("or just boom") + # @raise [Concurrent::Error] when raising not rejected future # @return [Exception] def exception(*args) raise Concurrent::Error, 'it is not rejected' unless rejected? + raise ArgumentError unless args.size <= 1 reason = Array(internal_state.reason).flatten.compact if reason.size > 1 ex = Concurrent::MultipleErrors.new reason ex.set_backtrace(caller) ex else - ex = reason[0].clone.exception(*args) + ex = if reason[0].respond_to? :exception + reason[0].exception(*args) + else + RuntimeError.new(reason[0]).exception(*args) + end ex.set_backtrace Array(ex.backtrace) + caller ex end @@ -1133,14 +1184,20 @@ module Concurrent # will become reason of the returned future. # # @return [Future] + # @param [#call(value)] run_test + # an object which when called returns either Future to keep running with + # or nil, then the run completes with the value. + # The run_test can be used to extract the Future from deeper structure, + # or to distinguish Future which is a resulting value from a future + # which is suppose to continue running. # @example # body = lambda do |v| # v += 1 # v < 5 ? Promises.future(v, &body) : v # end # Promises.future(0, &body).run.value! # => 5 - def run - RunFuturePromise.new_blocked_by1(self, @DefaultExecutor).future + def run(run_test = method(:run_test)) + RunFuturePromise.new_blocked_by1(self, @DefaultExecutor, run_test).future end # @!visibility private @@ -1163,13 +1220,34 @@ module Concurrent self end + # @return [String] Short string representation. + def to_s + if resolved? + format '%s with %s>', super[0..-2], (fulfilled? ? value : reason).inspect + else + super + end + end + + alias_method :inspect, :to_s + private + def run_test(v) + v if v.is_a?(Future) + end + def rejected_resolution(raise_on_reassign, state) if raise_on_reassign - raise Concurrent::MultipleAssignmentError.new( - "Future can be resolved only once. It's #{result}, trying to set #{state.result}.", - current_result: result, new_result: state.result) + if internal_state == RESERVED + raise Concurrent::MultipleAssignmentError.new( + "Future can be resolved only once. It is already reserved.") + else + raise Concurrent::MultipleAssignmentError.new( + "Future can be resolved only once. It's #{result}, trying to set #{state.result}.", + current_result: result, + new_result: state.result) + end end return false end @@ -1206,15 +1284,15 @@ module Concurrent end - # Marker module of Future, Event resolved manually by user. + # Marker module of Future, Event resolved manually. module Resolvable + include InternalStates end # A Event which can be resolved by user. class ResolvableEvent < Event include Resolvable - # @!macro raise_on_reassign # @raise [MultipleAssignmentError] when already resolved and raise_on_reassign is true. @@ -1227,8 +1305,13 @@ module Concurrent # Makes the event resolved, which triggers all dependent futures. # # @!macro promise.param.raise_on_reassign - def resolve(raise_on_reassign = true) - resolve_with RESOLVED, raise_on_reassign + # @!macro promise.param.reserved + # @param [true, false] reserved + # Set to true if the resolvable is {#reserve}d by you, + # marks resolution of reserved resolvable events and futures explicitly. + # Advanced feature, ignore unless you use {Resolvable#reserve} from edge. + def resolve(raise_on_reassign = true, reserved = false) + resolve_with RESOLVED, raise_on_reassign, reserved end # Creates new event wrapping receiver, effectively hiding the resolve method. @@ -1237,6 +1320,23 @@ module Concurrent def with_hidden_resolvable @with_hidden_resolvable ||= EventWrapperPromise.new_blocked_by1(self, @DefaultExecutor).event end + + # Behaves as {AbstractEventFuture#wait} but has one additional optional argument + # resolve_on_timeout. + # + # @param [true, false] resolve_on_timeout + # If it times out and the argument is true it will also resolve the event. + # @return [self, true, false] + # @see AbstractEventFuture#wait + def wait(timeout = nil, resolve_on_timeout = false) + super(timeout) or if resolve_on_timeout + # if it fails to resolve it was resolved in the meantime + # so return true as if there was no timeout + !resolve(false) + else + false + end + end end # A Future which can be resolved by user. @@ -1246,29 +1346,38 @@ module Concurrent # Makes the future resolved with result of triplet `fulfilled?`, `value`, `reason`, # which triggers all dependent futures. # + # @param [true, false] fulfilled + # @param [Object] value + # @param [Object] reason # @!macro promise.param.raise_on_reassign - def resolve(fulfilled = true, value = nil, reason = nil, raise_on_reassign = true) - resolve_with(fulfilled ? Fulfilled.new(value) : Rejected.new(reason), raise_on_reassign) + # @!macro promise.param.reserved + def resolve(fulfilled = true, value = nil, reason = nil, raise_on_reassign = true, reserved = false) + resolve_with(fulfilled ? Fulfilled.new(value) : Rejected.new(reason), raise_on_reassign, reserved) end # Makes the future fulfilled with `value`, # which triggers all dependent futures. # + # @param [Object] value # @!macro promise.param.raise_on_reassign - def fulfill(value, raise_on_reassign = true) - promise.fulfill(value, raise_on_reassign) + # @!macro promise.param.reserved + def fulfill(value, raise_on_reassign = true, reserved = false) + resolve_with Fulfilled.new(value), raise_on_reassign, reserved end # Makes the future rejected with `reason`, # which triggers all dependent futures. # + # @param [Object] reason # @!macro promise.param.raise_on_reassign - def reject(reason, raise_on_reassign = true) - promise.reject(reason, raise_on_reassign) + # @!macro promise.param.reserved + def reject(reason, raise_on_reassign = true, reserved = false) + resolve_with Rejected.new(reason), raise_on_reassign, reserved end # Evaluates the block and sets its result as future's value fulfilling, if the block raises # an exception the future rejects with it. + # # @yield [*args] to the block. # @yieldreturn [Object] value # @return [self] @@ -1278,6 +1387,7 @@ module Concurrent # Evaluates the block and sets its result as future's value fulfilling, if the block raises # an exception the future rejects with it. + # # @yield [*args] to the block. # @yieldreturn [Object] value # @return [self] @@ -1286,6 +1396,135 @@ module Concurrent promise.evaluate_to(*args, block).wait! end + # @!macro promises.resolvable.resolve_on_timeout + # @param [::Array(true, Object, nil), ::Array(false, nil, Exception), nil] resolve_on_timeout + # If it times out and the argument is not nil it will also resolve the future + # to the provided resolution. + + # Behaves as {AbstractEventFuture#wait} but has one additional optional argument + # resolve_on_timeout. + # + # @!macro promises.resolvable.resolve_on_timeout + # @return [self, true, false] + # @see AbstractEventFuture#wait + def wait(timeout = nil, resolve_on_timeout = nil) + super(timeout) or if resolve_on_timeout + # if it fails to resolve it was resolved in the meantime + # so return true as if there was no timeout + !resolve(*resolve_on_timeout, false) + else + false + end + end + + # Behaves as {Future#wait!} but has one additional optional argument + # resolve_on_timeout. + # + # @!macro promises.resolvable.resolve_on_timeout + # @return [self, true, false] + # @raise [Exception] {#reason} on rejection + # @see Future#wait! + def wait!(timeout = nil, resolve_on_timeout = nil) + super(timeout) or if resolve_on_timeout + if resolve(*resolve_on_timeout, false) + false + else + # if it fails to resolve it was resolved in the meantime + # so return true as if there was no timeout + raise self if rejected? + true + end + else + false + end + end + + # Behaves as {Future#value} but has one additional optional argument + # resolve_on_timeout. + # + # @!macro promises.resolvable.resolve_on_timeout + # @return [Object, timeout_value, nil] + # @see Future#value + def value(timeout = nil, timeout_value = nil, resolve_on_timeout = nil) + if wait_until_resolved timeout + internal_state.value + else + if resolve_on_timeout + unless resolve(*resolve_on_timeout, false) + # if it fails to resolve it was resolved in the meantime + # so return value as if there was no timeout + return internal_state.value + end + end + timeout_value + end + end + + # Behaves as {Future#value!} but has one additional optional argument + # resolve_on_timeout. + # + # @!macro promises.resolvable.resolve_on_timeout + # @return [Object, timeout_value, nil] + # @raise [Exception] {#reason} on rejection + # @see Future#value! + def value!(timeout = nil, timeout_value = nil, resolve_on_timeout = nil) + if wait_until_resolved! timeout + internal_state.value + else + if resolve_on_timeout + unless resolve(*resolve_on_timeout, false) + # if it fails to resolve it was resolved in the meantime + # so return value as if there was no timeout + raise self if rejected? + return internal_state.value + end + end + timeout_value + end + end + + # Behaves as {Future#reason} but has one additional optional argument + # resolve_on_timeout. + # + # @!macro promises.resolvable.resolve_on_timeout + # @return [Exception, timeout_value, nil] + # @see Future#reason + def reason(timeout = nil, timeout_value = nil, resolve_on_timeout = nil) + if wait_until_resolved timeout + internal_state.reason + else + if resolve_on_timeout + unless resolve(*resolve_on_timeout, false) + # if it fails to resolve it was resolved in the meantime + # so return value as if there was no timeout + return internal_state.reason + end + end + timeout_value + end + end + + # Behaves as {Future#result} but has one additional optional argument + # resolve_on_timeout. + # + # @!macro promises.resolvable.resolve_on_timeout + # @return [::Array(Boolean, Object, Exception), nil] + # @see Future#result + def result(timeout = nil, resolve_on_timeout = nil) + if wait_until_resolved timeout + internal_state.result + else + if resolve_on_timeout + unless resolve(*resolve_on_timeout, false) + # if it fails to resolve it was resolved in the meantime + # so return value as if there was no timeout + internal_state.result + end + end + # otherwise returns nil + end + end + # Creates new future wrapping receiver, effectively hiding the resolve method and similar. # # @return [Future] @@ -1358,14 +1597,6 @@ module Concurrent super ResolvableFuture.new(self, default_executor) end - def fulfill(value, raise_on_reassign) - resolve_with Fulfilled.new(value), raise_on_reassign - end - - def reject(reason, raise_on_reassign) - resolve_with Rejected.new(reason), raise_on_reassign - end - public :evaluate_to end @@ -1615,7 +1846,7 @@ module Concurrent value = internal_state.value case value - when Future, Event + when AbstractEventFuture add_delayed_of value value.add_callback_notify_blocked self, nil countdown @@ -1651,12 +1882,10 @@ module Concurrent value = internal_state.value case value - when Future + when AbstractEventFuture add_delayed_of value value.add_callback_notify_blocked self, nil countdown - when Event - evaluate_to(lambda { raise TypeError, 'cannot flatten to Event' }) else evaluate_to(lambda { raise TypeError, "returned value #{value.inspect} is not a Future" }) end @@ -1670,8 +1899,9 @@ module Concurrent private - def initialize(delayed, blockers_count, default_executor) + def initialize(delayed, blockers_count, default_executor, run_test) super delayed, 1, Future.new(self, default_executor) + @RunTest = run_test end def process_on_blocker_resolution(future, index) @@ -1682,11 +1912,12 @@ module Concurrent return 0 end - value = internal_state.value - case value - when Future - add_delayed_of value - value.add_callback_notify_blocked self, nil + value = internal_state.value + continuation_future = @RunTest.call value + + if continuation_future + add_delayed_of continuation_future + continuation_future.add_callback_notify_blocked self, nil else resolve_with internal_state end @@ -1805,23 +2036,6 @@ module Concurrent class AbstractAnyPromise < BlockedPromise end - class AnyResolvedFuturePromise < AbstractAnyPromise - - private - - def initialize(delayed, blockers_count, default_executor) - super delayed, blockers_count, Future.new(self, default_executor) - end - - def resolvable?(countdown, future, index) - true - end - - def on_resolvable(resolved_future, index) - resolve_with resolved_future.internal_state, false - end - end - class AnyResolvedEventPromise < AbstractAnyPromise private @@ -1839,6 +2053,23 @@ module Concurrent end end + class AnyResolvedFuturePromise < AbstractAnyPromise + + private + + def initialize(delayed, blockers_count, default_executor) + super delayed, blockers_count, Future.new(self, default_executor) + end + + def resolvable?(countdown, future, index) + true + end + + def on_resolvable(resolved_future, index) + resolve_with resolved_future.internal_state, false + end + end + class AnyFulfilledFuturePromise < AnyResolvedFuturePromise private diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/re_include.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/re_include.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/re_include.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/re_include.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/scheduled_task.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/scheduled_task.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/scheduled_task.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/scheduled_task.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/set.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/set.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/set.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/set.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/settable_struct.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/settable_struct.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/settable_struct.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/settable_struct.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/abstract_lockable_object.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/abstract_lockable_object.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/abstract_lockable_object.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/abstract_lockable_object.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/abstract_object.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/abstract_object.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/abstract_object.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/abstract_object.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/abstract_struct.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/abstract_struct.rb similarity index 98% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/abstract_struct.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/abstract_struct.rb index 8c4dff4869..d94f657552 100644 --- a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/abstract_struct.rb +++ b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/abstract_struct.rb @@ -152,6 +152,7 @@ module Concurrent end end clazz.class_exec(&block) unless block.nil? + clazz.singleton_class.send :alias_method, :[], :new clazz end end diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/condition.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/condition.rb similarity index 98% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/condition.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/condition.rb index ac528bc256..f704b81ee6 100644 --- a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/condition.rb +++ b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/condition.rb @@ -1,5 +1,7 @@ module Concurrent module Synchronization + + # @!visibility private # TODO (pitr-ch 04-Dec-2016): should be in edge class Condition < LockableObject safe_initialization! diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/jruby_lockable_object.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/jruby_lockable_object.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/jruby_lockable_object.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/jruby_lockable_object.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/jruby_object.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/jruby_object.rb similarity index 97% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/jruby_object.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/jruby_object.rb index b04382f1ca..da91ac50b8 100644 --- a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/jruby_object.rb +++ b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/jruby_object.rb @@ -3,6 +3,7 @@ module Concurrent if Concurrent.on_jruby? && Concurrent.java_extensions_loaded? + # @!visibility private module JRubyAttrVolatile def self.included(base) base.extend(ClassMethods) diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/lock.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/lock.rb similarity index 95% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/lock.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/lock.rb index ed865b38b4..0dbad2eb45 100644 --- a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/lock.rb +++ b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/lock.rb @@ -1,5 +1,7 @@ module Concurrent module Synchronization + + # @!visibility private # TODO (pitr-ch 04-Dec-2016): should be in edge class Lock < LockableObject # TODO use JavaReentrantLock on JRuby diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/lockable_object.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/lockable_object.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/lockable_object.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/lockable_object.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/mri_object.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/mri_object.rb similarity index 97% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/mri_object.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/mri_object.rb index 74202f53e7..4b1d6c2956 100644 --- a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/mri_object.rb +++ b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/mri_object.rb @@ -1,6 +1,7 @@ module Concurrent module Synchronization + # @!visibility private module MriAttrVolatile def self.included(base) base.extend(ClassMethods) diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/mutex_lockable_object.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/mutex_lockable_object.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/mutex_lockable_object.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/mutex_lockable_object.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/object.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/object.rb similarity index 70% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/object.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/object.rb index 1254427c70..0e62112807 100644 --- a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/object.rb +++ b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/object.rb @@ -27,15 +27,15 @@ module Concurrent # @!method self.attr_volatile(*names) # Creates methods for reading and writing (as `attr_accessor` does) to a instance variable with - # volatile (Java) semantic. The instance variable should be accessed oly through generated methods. + # volatile (Java) semantic. The instance variable should be accessed only through generated methods. # - # @param [Array] names of the instance variables to be volatile - # @return [Array] names of defined method names + # @param [::Array] names of the instance variables to be volatile + # @return [::Array] names of defined method names # Has to be called by children. def initialize super - initialize_volatile_with_cas + __initialize_atomic_fields__ end # By calling this method on a class, it and all its children are marked to be constructed safely. Meaning that @@ -49,10 +49,12 @@ module Concurrent # @AFinalValue = 'value' # published safely, does not have to be synchronized # end # end + # @return [true] def self.safe_initialization! # define only once, and not again in children return if safe_initialization? + # @!visibility private def self.new(*args, &block) object = super(*args, &block) ensure @@ -70,6 +72,8 @@ module Concurrent # For testing purposes, quite slow. Injects assert code to new method which will raise if class instance contains # any instance variables with CamelCase names and isn't {.safe_initialization?}. + # @raise when offend found + # @return [true] def self.ensure_safe_initialization_when_final_fields_are_present Object.class_eval do def self.new(*args, &block) @@ -81,6 +85,7 @@ module Concurrent end end end + true end # Creates methods for reading and writing to a instance variable with @@ -89,13 +94,30 @@ module Concurrent # This method generates following methods: `value`, `value=(new_value) #=> new_value`, # `swap_value(new_value) #=> old_value`, # `compare_and_set_value(expected, value) #=> true || false`, `update_value(&block)`. - # @param [Array] names of the instance variables to be volatile with CAS. - # @return [Array] names of defined method names. + # @param [::Array] names of the instance variables to be volatile with CAS. + # @return [::Array] names of defined method names. + # @!macro attr_atomic + # @!method $1 + # @return [Object] The $1. + # @!method $1=(new_$1) + # Set the $1. + # @return [Object] new_$1. + # @!method swap_$1(new_$1) + # Set the $1 to new_$1 and return the old $1. + # @return [Object] old $1 + # @!method compare_and_set_$1(expected_$1, new_$1) + # Sets the $1 to new_$1 if the current $1 is expected_$1 + # @return [true, false] + # @!method update_$1(&block) + # Updates the $1 using the block. + # @yield [Object] Calculate a new $1 using given (old) $1 + # @yieldparam [Object] old $1 + # @return [Object] new $1 def self.attr_atomic(*names) - @volatile_cas_fields ||= [] - @volatile_cas_fields += names + @__atomic_fields__ ||= [] + @__atomic_fields__ += names safe_initialization! - define_initialize_volatile_with_cas + define_initialize_atomic_fields names.each do |name| ivar = :"@Atomic#{name.to_s.gsub(/(?:^|_)(.)/) { $1.upcase }}" @@ -124,32 +146,36 @@ module Concurrent names.flat_map { |n| [n, :"#{n}=", :"swap_#{n}", :"compare_and_set_#{n}", :"update_#{n}"] } end - # @param [true,false] inherited should inherited volatile with CAS fields be returned? - # @return [Array] Returns defined volatile with CAS fields on this class. - def self.volatile_cas_fields(inherited = true) - @volatile_cas_fields ||= [] - ((superclass.volatile_cas_fields if superclass.respond_to?(:volatile_cas_fields) && inherited) || []) + - @volatile_cas_fields + # @param [true, false] inherited should inherited volatile with CAS fields be returned? + # @return [::Array] Returns defined volatile with CAS fields on this class. + def self.atomic_attributes(inherited = true) + @__atomic_fields__ ||= [] + ((superclass.atomic_attributes if superclass.respond_to?(:atomic_attributes) && inherited) || []) + @__atomic_fields__ + end + + # @return [true, false] is the attribute with name atomic? + def self.atomic_attribute?(name) + atomic_attributes.include? name end private - def self.define_initialize_volatile_with_cas - assignments = @volatile_cas_fields.map do |name| + def self.define_initialize_atomic_fields + assignments = @__atomic_fields__.map do |name| "@Atomic#{name.to_s.gsub(/(?:^|_)(.)/) { $1.upcase }} = Concurrent::AtomicReference.new(nil)" end.join("\n") class_eval <<-RUBY, __FILE__, __LINE__ + 1 - def initialize_volatile_with_cas + def __initialize_atomic_fields__ super #{assignments} end RUBY end - private_class_method :define_initialize_volatile_with_cas + private_class_method :define_initialize_atomic_fields - def initialize_volatile_with_cas + def __initialize_atomic_fields__ end end diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/rbx_lockable_object.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/rbx_lockable_object.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/rbx_lockable_object.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/rbx_lockable_object.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/rbx_object.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/rbx_object.rb similarity index 97% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/rbx_object.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/rbx_object.rb index b9a0e3f901..4b23f2a662 100644 --- a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/rbx_object.rb +++ b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/rbx_object.rb @@ -1,6 +1,7 @@ module Concurrent module Synchronization + # @!visibility private module RbxAttrVolatile def self.included(base) base.extend(ClassMethods) diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/truffleruby_object.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/truffleruby_object.rb similarity index 97% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/truffleruby_object.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/truffleruby_object.rb index b25fe2189b..3919c76d21 100644 --- a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/truffleruby_object.rb +++ b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/truffleruby_object.rb @@ -1,6 +1,7 @@ module Concurrent module Synchronization + # @!visibility private module TruffleRubyAttrVolatile def self.included(base) base.extend(ClassMethods) diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/volatile.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/volatile.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/volatile.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/volatile.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/thread_safe/synchronized_delegator.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/thread_safe/synchronized_delegator.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/thread_safe/synchronized_delegator.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/thread_safe/synchronized_delegator.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/thread_safe/util.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/thread_safe/util.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/thread_safe/util.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/thread_safe/util.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/thread_safe/util/adder.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/thread_safe/util/adder.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/thread_safe/util/adder.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/thread_safe/util/adder.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/thread_safe/util/cheap_lockable.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/thread_safe/util/cheap_lockable.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/thread_safe/util/cheap_lockable.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/thread_safe/util/cheap_lockable.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/thread_safe/util/data_structures.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/thread_safe/util/data_structures.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/thread_safe/util/data_structures.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/thread_safe/util/data_structures.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/thread_safe/util/power_of_two_tuple.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/thread_safe/util/power_of_two_tuple.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/thread_safe/util/power_of_two_tuple.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/thread_safe/util/power_of_two_tuple.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/thread_safe/util/striped64.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/thread_safe/util/striped64.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/thread_safe/util/striped64.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/thread_safe/util/striped64.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/thread_safe/util/volatile.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/thread_safe/util/volatile.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/thread_safe/util/volatile.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/thread_safe/util/volatile.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/thread_safe/util/xor_shift_random.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/thread_safe/util/xor_shift_random.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/thread_safe/util/xor_shift_random.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/thread_safe/util/xor_shift_random.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/timer_task.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/timer_task.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/timer_task.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/timer_task.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/tuple.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/tuple.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/tuple.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/tuple.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/tvar.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/tvar.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/tvar.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/tvar.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/utility/at_exit.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/utility/at_exit.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/utility/at_exit.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/utility/at_exit.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/utility/engine.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/utility/engine.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/utility/engine.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/utility/engine.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/utility/monotonic_time.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/utility/monotonic_time.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/utility/monotonic_time.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/utility/monotonic_time.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/utility/native_extension_loader.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/utility/native_extension_loader.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/utility/native_extension_loader.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/utility/native_extension_loader.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/utility/native_integer.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/utility/native_integer.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/utility/native_integer.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/utility/native_integer.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/utility/processor_counter.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/utility/processor_counter.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/utility/processor_counter.rb rename to Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/utility/processor_counter.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/version.rb b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/version.rb new file mode 100644 index 0000000000..0f611c51ae --- /dev/null +++ b/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/version.rb @@ -0,0 +1,3 @@ +module Concurrent + VERSION = '1.1.5' +end