Sha256: 218bc55f2968d31bf47797509c81279db749f36dbb1d3a87c26cc28657103afe
Contents?: true
Size: 1.67 KB
Versions: 2
Compression:
Stored size: 1.67 KB
Contents
require 'concurrent/synchronization/abstract_object' # must be loaded before JRuby extensions require 'concurrent/utility/engine' module Concurrent module Utility # @!visibility private module NativeExtensionLoader def allow_c_extensions? Concurrent.on_cruby? end def c_extensions_loaded? @c_extensions_loaded ||= false end def java_extensions_loaded? @java_extensions_loaded ||= false end def set_c_extensions_loaded @c_extensions_loaded = true end def set_java_extensions_loaded @java_extensions_loaded = true end def load_native_extensions if Concurrent.on_cruby? && !c_extensions_loaded? tries = [ lambda do require 'concurrent/extension' set_c_extensions_loaded end, lambda do # may be a Windows cross-compiled native gem require "concurrent/#{RUBY_VERSION[0..2]}/extension" set_c_extensions_loaded end] tries.each do |try| begin try.call break rescue LoadError next end end end if Concurrent.on_jruby? && !java_extensions_loaded? begin require 'concurrent_ruby_ext' set_java_extensions_loaded rescue LoadError # move on with pure-Ruby implementations warn 'On JRuby but Java extensions failed to load.' end end end end end # @!visibility private extend Utility::NativeExtensionLoader end Concurrent.load_native_extensions
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
concurrent-ruby-1.0.0.pre4-java | lib/concurrent/utility/native_extension_loader.rb |
concurrent-ruby-1.0.0.pre4 | lib/concurrent/utility/native_extension_loader.rb |