Sha256: 40a3daf2d94b071a5dfbd6e0a9654668825016a4eeed6a99170a08336fe40061

Contents?: true

Size: 978 Bytes

Versions: 5

Compression:

Stored size: 978 Bytes

Contents

module Concurrent

  @@c_ext_loaded ||= false
  @@java_ext_loaded ||= false

  # @!visibility private
  def self.allow_c_extensions?
    defined?(RUBY_ENGINE) && RUBY_ENGINE == 'ruby'
  end

  # @!visibility private
  def self.jruby?
    RUBY_PLATFORM == 'java'
  end

  if allow_c_extensions? && !@@c_ext_loaded
    begin
      require 'concurrent/extension'
      @@c_ext_loaded = true
    rescue LoadError
      # may be a Windows cross-compiled native gem
      begin
        require "#{RUBY_VERSION[0..2]}/concurrent/extension"
        @@c_ext_loaded = true
      rescue LoadError
        warn 'Performance on MRI may be improved with the concurrent-ruby-ext gem. Please see http://concurrent-ruby.com'
      end
    end
  elsif jruby? && !@@java_ext_loaded
    begin
      require 'concurrent_ruby_ext'
      @@java_ext_loaded = true
    rescue LoadError
      warn 'Attempted to load Java extensions on unsupported platform. Continuing with pure-Ruby.'
    end
  end
end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
concurrent-ruby-ext-0.8.0.pre2 lib/extension_helper.rb
concurrent-ruby-ext-0.8.0.pre2-x86-mingw32 lib/extension_helper.rb
concurrent-ruby-ext-0.8.0.pre2-x64-mingw32 lib/extension_helper.rb
concurrent-ruby-0.8.0.pre2 lib/extension_helper.rb
concurrent-ruby-0.8.0.pre2-java lib/extension_helper.rb