From c93fc1a09729031d8d9245aab646e92da5521d59 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Mon, 11 Mar 2019 12:45:20 +0000 Subject: [PATCH] brew vendor-gems: commit updates. --- .../Homebrew/vendor/bundle/bundler/setup.rb | 2 +- .../lib/concurrent/version.rb | 4 - .../lib/concurrent-ruby.rb | 0 .../lib/concurrent.rb | 0 .../lib/concurrent/agent.rb | 0 .../lib/concurrent/array.rb | 6 +- .../lib/concurrent/async.rb | 14 + .../lib/concurrent/atom.rb | 0 .../atomic/abstract_thread_local_var.rb | 0 .../lib/concurrent/atomic/atomic_boolean.rb | 0 .../lib/concurrent/atomic/atomic_fixnum.rb | 4 +- .../atomic/atomic_markable_reference.rb | 0 .../lib/concurrent/atomic/atomic_reference.rb | 0 .../lib/concurrent/atomic/count_down_latch.rb | 0 .../lib/concurrent/atomic/cyclic_barrier.rb | 0 .../lib/concurrent/atomic/event.rb | 0 .../atomic/java_count_down_latch.rb | 0 .../atomic/java_thread_local_var.rb | 0 .../concurrent/atomic/mutex_atomic_boolean.rb | 0 .../concurrent/atomic/mutex_atomic_fixnum.rb | 0 .../atomic/mutex_count_down_latch.rb | 0 .../lib/concurrent/atomic/mutex_semaphore.rb | 0 .../lib/concurrent/atomic/read_write_lock.rb | 0 .../atomic/reentrant_read_write_lock.rb | 0 .../atomic/ruby_thread_local_var.rb | 0 .../lib/concurrent/atomic/semaphore.rb | 0 .../lib/concurrent/atomic/thread_local_var.rb | 0 .../atomic_reference/mutex_atomic.rb | 0 .../atomic_reference/numeric_cas_wrapper.rb | 0 .../lib/concurrent/atomics.rb | 0 .../collection/copy_on_notify_observer_set.rb | 0 .../collection/copy_on_write_observer_set.rb | 0 .../java_non_concurrent_priority_queue.rb | 0 .../concurrent/collection/lock_free_stack.rb | 2 +- .../map/atomic_reference_map_backend.rb | 0 .../collection/map/mri_map_backend.rb | 0 .../map/non_concurrent_map_backend.rb | 0 .../map/synchronized_map_backend.rb | 0 .../non_concurrent_priority_queue.rb | 0 .../ruby_non_concurrent_priority_queue.rb | 0 .../lib/concurrent/concern/deprecation.rb | 0 .../lib/concurrent/concern/dereferenceable.rb | 0 .../lib/concurrent/concern/logging.rb | 0 .../lib/concurrent/concern/obligation.rb | 0 .../lib/concurrent/concern/observable.rb | 0 .../lib/concurrent/concurrent_ruby.jar | Bin 137023 -> 137051 bytes .../lib/concurrent/configuration.rb | 0 .../lib/concurrent/constants.rb | 0 .../lib/concurrent/dataflow.rb | 0 .../lib/concurrent/delay.rb | 0 .../lib/concurrent/errors.rb | 0 .../lib/concurrent/exchanger.rb | 0 .../executor/abstract_executor_service.rb | 0 .../concurrent/executor/cached_thread_pool.rb | 0 .../concurrent/executor/executor_service.rb | 0 .../concurrent/executor/fixed_thread_pool.rb | 0 .../concurrent/executor/immediate_executor.rb | 0 .../executor/indirect_immediate_executor.rb | 0 .../executor/java_executor_service.rb | 0 .../executor/java_single_thread_executor.rb | 0 .../executor/java_thread_pool_executor.rb | 0 .../executor/ruby_executor_service.rb | 0 .../executor/ruby_single_thread_executor.rb | 0 .../executor/ruby_thread_pool_executor.rb | 0 .../concurrent/executor/safe_task_executor.rb | 0 .../executor/serial_executor_service.rb | 0 .../executor/serialized_execution.rb | 0 .../serialized_execution_delegator.rb | 0 .../executor/simple_executor_service.rb | 0 .../executor/single_thread_executor.rb | 0 .../executor/thread_pool_executor.rb | 0 .../lib/concurrent/executor/timer_set.rb | 28 +- .../lib/concurrent/executors.rb | 0 .../lib/concurrent/future.rb | 0 .../lib/concurrent/hash.rb | 6 +- .../lib/concurrent/immutable_struct.rb | 0 .../lib/concurrent/ivar.rb | 0 .../lib/concurrent/map.rb | 0 .../lib/concurrent/maybe.rb | 0 .../lib/concurrent/mutable_struct.rb | 0 .../lib/concurrent/mvar.rb | 0 .../lib/concurrent/options.rb | 0 .../lib/concurrent/promise.rb | 0 .../lib/concurrent/promises.rb | 487 +++++++++++++----- .../lib/concurrent/re_include.rb | 0 .../lib/concurrent/scheduled_task.rb | 0 .../lib/concurrent/set.rb | 0 .../lib/concurrent/settable_struct.rb | 0 .../lib/concurrent/synchronization.rb | 0 .../abstract_lockable_object.rb | 0 .../synchronization/abstract_object.rb | 0 .../synchronization/abstract_struct.rb | 1 + .../concurrent/synchronization/condition.rb | 2 + .../synchronization/jruby_lockable_object.rb | 0 .../synchronization/jruby_object.rb | 1 + .../lib/concurrent/synchronization/lock.rb | 2 + .../synchronization/lockable_object.rb | 0 .../concurrent/synchronization/mri_object.rb | 1 + .../synchronization/mutex_lockable_object.rb | 0 .../lib/concurrent/synchronization/object.rb | 66 ++- .../synchronization/rbx_lockable_object.rb | 0 .../concurrent/synchronization/rbx_object.rb | 1 + .../synchronization/truffleruby_object.rb | 1 + .../concurrent/synchronization/volatile.rb | 0 .../thread_safe/synchronized_delegator.rb | 0 .../lib/concurrent/thread_safe/util.rb | 0 .../lib/concurrent/thread_safe/util/adder.rb | 0 .../thread_safe/util/cheap_lockable.rb | 0 .../thread_safe/util/data_structures.rb | 0 .../thread_safe/util/power_of_two_tuple.rb | 0 .../concurrent/thread_safe/util/striped64.rb | 0 .../concurrent/thread_safe/util/volatile.rb | 0 .../thread_safe/util/xor_shift_random.rb | 0 .../lib/concurrent/timer_task.rb | 0 .../lib/concurrent/tuple.rb | 0 .../lib/concurrent/tvar.rb | 0 .../lib/concurrent/utility/at_exit.rb | 0 .../lib/concurrent/utility/engine.rb | 0 .../lib/concurrent/utility/monotonic_time.rb | 0 .../utility/native_extension_loader.rb | 0 .../lib/concurrent/utility/native_integer.rb | 0 .../concurrent/utility/processor_counter.rb | 0 .../lib/concurrent/version.rb | 3 + 123 files changed, 454 insertions(+), 177 deletions(-) delete mode 100644 Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.4/lib/concurrent/version.rb rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent-ruby.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/agent.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/array.rb (91%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/async.rb (97%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/atom.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/atomic/abstract_thread_local_var.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/atomic/atomic_boolean.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/atomic/atomic_fixnum.rb (98%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/atomic/atomic_markable_reference.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/atomic/atomic_reference.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/atomic/count_down_latch.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/atomic/cyclic_barrier.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/atomic/event.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/atomic/java_count_down_latch.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/atomic/java_thread_local_var.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/atomic/mutex_atomic_boolean.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/atomic/mutex_atomic_fixnum.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/atomic/mutex_count_down_latch.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/atomic/mutex_semaphore.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/atomic/read_write_lock.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/atomic/reentrant_read_write_lock.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/atomic/ruby_thread_local_var.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/atomic/semaphore.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/atomic/thread_local_var.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/atomic_reference/mutex_atomic.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/atomic_reference/numeric_cas_wrapper.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/atomics.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/collection/copy_on_notify_observer_set.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/collection/copy_on_write_observer_set.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/collection/java_non_concurrent_priority_queue.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/collection/lock_free_stack.rb (99%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/collection/map/atomic_reference_map_backend.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/collection/map/mri_map_backend.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/collection/map/non_concurrent_map_backend.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/collection/map/synchronized_map_backend.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/collection/non_concurrent_priority_queue.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/collection/ruby_non_concurrent_priority_queue.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/concern/deprecation.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/concern/dereferenceable.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/concern/logging.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/concern/obligation.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/concern/observable.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/concurrent_ruby.jar (79%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/configuration.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/constants.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/dataflow.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/delay.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/errors.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/exchanger.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/executor/abstract_executor_service.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/executor/cached_thread_pool.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/executor/executor_service.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/executor/fixed_thread_pool.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/executor/immediate_executor.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/executor/indirect_immediate_executor.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/executor/java_executor_service.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/executor/java_single_thread_executor.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/executor/java_thread_pool_executor.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/executor/ruby_executor_service.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/executor/ruby_single_thread_executor.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/executor/ruby_thread_pool_executor.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/executor/safe_task_executor.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/executor/serial_executor_service.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/executor/serialized_execution.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/executor/serialized_execution_delegator.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/executor/simple_executor_service.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/executor/single_thread_executor.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/executor/thread_pool_executor.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/executor/timer_set.rb (89%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/executors.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/future.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/hash.rb (89%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/immutable_struct.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/ivar.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/map.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/maybe.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/mutable_struct.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/mvar.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/options.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/promise.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/promises.rb (79%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/re_include.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/scheduled_task.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/set.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/settable_struct.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/synchronization.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/synchronization/abstract_lockable_object.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/synchronization/abstract_object.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/synchronization/abstract_struct.rb (98%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/synchronization/condition.rb (98%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/synchronization/jruby_lockable_object.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/synchronization/jruby_object.rb (97%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/synchronization/lock.rb (95%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/synchronization/lockable_object.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/synchronization/mri_object.rb (97%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/synchronization/mutex_lockable_object.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/synchronization/object.rb (70%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/synchronization/rbx_lockable_object.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/synchronization/rbx_object.rb (97%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/synchronization/truffleruby_object.rb (97%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/synchronization/volatile.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/thread_safe/synchronized_delegator.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/thread_safe/util.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/thread_safe/util/adder.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/thread_safe/util/cheap_lockable.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/thread_safe/util/data_structures.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/thread_safe/util/power_of_two_tuple.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/thread_safe/util/striped64.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/thread_safe/util/volatile.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/thread_safe/util/xor_shift_random.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/timer_task.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/tuple.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/tvar.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/utility/at_exit.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/utility/engine.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/utility/monotonic_time.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/utility/native_extension_loader.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/utility/native_integer.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/{concurrent-ruby-1.1.4 => concurrent-ruby-1.1.5}/lib/concurrent/utility/processor_counter.rb (100%) create mode 100644 Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/concurrent-ruby-1.1.5/lib/concurrent/version.rb 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 76eee54f2d457025f4481991d590abc8e10a9682..bf8261fae791e58b4badb96045cb94e017aead7e 100644 GIT binary patch delta 13454 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 delta 13558 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

b>d zDx~)-s38EIyv?Ed#}nuw=t*%NN`krt zp2c_{jGF!M1U=h-2(Y6=yl2gz{TgIE588k_7W~g2g6askhBh=^-y8V~{NS;N+Jydt zz`+qJMbnXzL731;n2r0a9r%iFix>w-?iAAG85#-RM(NQ=j=B8JEfDb*RD3$OTrbeb z2jmb+1Ti_b&fe8zxHt+V zIbAC5FVS$+?HU2zuAvB)lRsr4astwI*Zq-G{Vyvgx%O44>n{wXJKbuyUj2a+p|^^N z^Ay;U_Ofm?L>91Qd* z^uIMZ+Jx5q-5sDnTnDg4`I2w>z!Q9Y_{I8Pwd}1ZIJj9LLj+P|(az5=X4;}+1m^s7 zzHx`KX!PC{6V+g7>DDS}YBg9Lrwe{~1Z@hqrC`CNrU?RJf?OQ`GmF{YB3N)C*k&Yx z3(5zkK>0<~euEkvj>rA8D}|t|V%DfcTeqI5?-y9{zSsvYkF$&EIK!rvZFw>_S?r5m{`&2M7G!!^ETBm55FQV~(J1&Mwn-HYxzJd`w zjX#UN5YQ3(aOZ1AC&(ZL8g%s(6Pr9n^Zy#{RU(kZMFGR||LL?SF{jEOF{agG^y?6V zqI;Sc(VxDGE&~yL%CQbm@Bh6Sd`8R?LohdkE@|7yRuCiz8hLuJ!K#BX5`50Yrl|=W zL2l?`RQ+k7XjftImK%*=Vf2C(ce>d$8(>&aT@?-Gb7DB(1uDD(D!g_oDtpE#s4`r- zm>Q7>#irf^cZRDSgo%Ri)67Z;11Q826NG9gXjzyUM%CZmxp69-%-Eu}6FKd|+?sCn)R% zL8hlba`qTLR6oV25vBmuG&-QBRS^l`56pB0YMRdpJq=f=C;eZ`e30u^vIdf-g5>(A z$P=A0EMzWV_eHf!v@um1W`q$S_7-^Uoi5*>E*PIt&)o=esy`j%JQb*V&kZBHeH)-c z-gK68;Ez;^^B2obO=VYuY!KrYWu z{{Rxf8H}tFB?}z-D?5+wW@u&7JN@GC2*9lX*?-%k?Z{s|F#>$RBS84kWAhpkoT6w2 r<~13#QuLyGk;}#1oysz>v8@ck%zib 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