Sha256: 4acd826bc6b887ff63d9c64eae2f30bd795347b628b3880bd531cc99d80ffb3c

Contents?: true

Size: 1.13 KB

Versions: 105

Compression:

Stored size: 1.13 KB

Contents

if Concurrent.on_jruby?
  require 'concurrent/utility/native_extension_loader'

  module Concurrent

    # @!macro count_down_latch
    # @!visibility private
    # @!macro internal_implementation_note
    class JavaCountDownLatch

      # @!macro count_down_latch_method_initialize
      def initialize(count = 1)
        Utility::NativeInteger.ensure_integer_and_bounds(count)
        Utility::NativeInteger.ensure_positive(count)
        @latch = java.util.concurrent.CountDownLatch.new(count)
      end

      # @!macro count_down_latch_method_wait
      def wait(timeout = nil)
        result = nil
        if timeout.nil?
          Synchronization::JRuby.sleep_interruptibly { @latch.await }
          result = true
        else
          Synchronization::JRuby.sleep_interruptibly do
            result = @latch.await(1000 * timeout, java.util.concurrent.TimeUnit::MILLISECONDS)
          end
        end
        result
      end

      # @!macro count_down_latch_method_count_down
      def count_down
        @latch.countDown
      end

      # @!macro count_down_latch_method_count
      def count
        @latch.getCount
      end
    end
  end
end

Version data entries

105 entries across 105 versions & 17 rubygems

Version Path
concurrent-ruby-1.3.5 lib/concurrent-ruby/concurrent/atomic/java_count_down_latch.rb
minato_ruby_api_client-0.2.2 vendor/bundle/ruby/3.2.0/gems/concurrent-ruby-1.3.3/lib/concurrent-ruby/concurrent/atomic/java_count_down_latch.rb
fluent-plugin-nuopenlineage-light-0.1.0 vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/atomic/java_count_down_latch.rb
fluent-plugin-openlineage-light-0.1.4 vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/atomic/java_count_down_latch.rb
fluent-plugin-openlineage-light-0.1.3 vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/atomic/java_count_down_latch.rb
concurrent-ruby-1.3.4 lib/concurrent-ruby/concurrent/atomic/java_count_down_latch.rb
fluent-plugin-openlineage-0.1.0 vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.3/lib/concurrent-ruby/concurrent/atomic/java_count_down_latch.rb
blacklight-spotlight-3.6.0.beta8 vendor/bundle/ruby/3.2.0/gems/concurrent-ruby-1.3.3/lib/concurrent-ruby/concurrent/atomic/java_count_down_latch.rb
cm-admin-1.5.22 vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/atomic/java_count_down_latch.rb
cm-admin-1.5.21 vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/atomic/java_count_down_latch.rb
cm-admin-1.5.20 vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/atomic/java_count_down_latch.rb
katalyst-govuk-formbuilder-1.9.2 vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.3/lib/concurrent-ruby/concurrent/atomic/java_count_down_latch.rb
concurrent-ruby-1.3.3 lib/concurrent-ruby/concurrent/atomic/java_count_down_latch.rb
concurrent-ruby-1.3.2 lib/concurrent-ruby/concurrent/atomic/java_count_down_latch.rb
tinymce-rails-7.1.2 vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.1/lib/concurrent-ruby/concurrent/atomic/java_count_down_latch.rb
concurrent-ruby-1.3.1 lib/concurrent-ruby/concurrent/atomic/java_count_down_latch.rb
concurrent-ruby-1.3.1.pre lib/concurrent-ruby/concurrent/atomic/java_count_down_latch.rb
harbr-2.8.1 vendor/bundle/ruby/3.2.0/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/atomic/java_count_down_latch.rb
mlh-rubocop-config-1.0.3 vendor/bundle/ruby/3.2.0/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/atomic/java_count_down_latch.rb
concurrent-ruby-1.2.3 lib/concurrent-ruby/concurrent/atomic/java_count_down_latch.rb