Sha256: 645458c8f038ac2ce8264dbd805f4d6043d8c962f9ebc9be257f456221f5cc0f

Contents?: true

Size: 938 Bytes

Versions: 69

Compression:

Stored size: 938 Bytes

Contents

# Fibers are hard... let's go shopping!
begin
  require 'fiber'
rescue LoadError => ex
  if defined? JRUBY_VERSION
    if RUBY_VERSION < "1.9.2"
      raise LoadError, "Celluloid requires JRuby 1.9 mode. Please pass the --1.9 flag or set JRUBY_OPTS=--1.9"
    end

    # Fibers are broken on JRuby 1.6.5. This works around the issue
    if JRUBY_VERSION == "1.6.5"
      require 'jruby'
      org.jruby.ext.fiber.FiberExtLibrary.new.load(JRuby.runtime, false)
      class org::jruby::ext::fiber::ThreadFiber
        field_accessor :state
      end

      class Fiber
        def alive?
          JRuby.reference(self).state != org.jruby.ext.fiber.ThreadFiberState::FINISHED
        end
      end
    else
      # Just in case subsequent JRuby releases have broken fibers :/
      raise ex
    end
  elsif defined? Rubinius
    # If we're on Rubinius, we can still work in 1.8 mode
    Fiber = Rubinius::Fiber
  else
    raise ex
  end
end

Version data entries

69 entries across 69 versions & 2 rubygems

Version Path
engineyard-serverside-2.0.4 lib/vendor/celluloid/lib/celluloid/fiber.rb
engineyard-serverside-1.6.5 lib/vendor/celluloid/lib/celluloid/fiber.rb
engineyard-serverside-2.0.3 lib/vendor/celluloid/lib/celluloid/fiber.rb
engineyard-serverside-2.0.2 lib/vendor/celluloid/lib/celluloid/fiber.rb
engineyard-serverside-2.0.1 lib/vendor/celluloid/lib/celluloid/fiber.rb
engineyard-serverside-2.0.0 lib/vendor/celluloid/lib/celluloid/fiber.rb
engineyard-serverside-2.0.0.rc1 lib/vendor/celluloid/lib/celluloid/fiber.rb
engineyard-serverside-2.0.0.pre5 lib/vendor/celluloid/lib/celluloid/fiber.rb
engineyard-serverside-2.0.0.pre4 lib/vendor/celluloid/lib/celluloid/fiber.rb
engineyard-serverside-2.0.0.pre3 lib/vendor/celluloid/lib/celluloid/fiber.rb
engineyard-serverside-2.0.0.pre2 lib/vendor/celluloid/lib/celluloid/fiber.rb
engineyard-serverside-2.0.0.pre1 lib/vendor/celluloid/lib/celluloid/fiber.rb
engineyard-serverside-1.7.0.pre2 lib/vendor/celluloid/lib/celluloid/fiber.rb
engineyard-serverside-1.6.4 lib/vendor/celluloid/lib/celluloid/fiber.rb
engineyard-serverside-1.6.4.pre6 lib/vendor/celluloid/lib/celluloid/fiber.rb
engineyard-serverside-1.6.4.pre5 lib/vendor/celluloid/lib/celluloid/fiber.rb
engineyard-serverside-1.6.4.pre4 lib/vendor/celluloid/lib/celluloid/fiber.rb
engineyard-serverside-1.6.4.pre3 lib/vendor/celluloid/lib/celluloid/fiber.rb
engineyard-serverside-1.6.4.pre2 lib/vendor/celluloid/lib/celluloid/fiber.rb
engineyard-serverside-1.6.4.pre lib/vendor/celluloid/lib/celluloid/fiber.rb