Sha256: ce7621b4671a952d2500df78e2153715a8f7930fc53092b246bd93646a0fdbc0

Contents?: true

Size: 421 Bytes

Versions: 70

Compression:

Stored size: 421 Bytes

Contents

# frozen_string_literal: true

require 'polyphony'
require 'readline'

# readline blocks the current thread, so we offload it to the blocking-ops
# thread pool. That way, the reactor loop can keep running while waiting for
# readline to return
module ::Readline
  alias_method :orig_readline, :readline

  Worker = Polyphony::ThreadPool.new(1)

  def readline(*args)
    Worker.process { orig_readline(*args) }
  end
end

Version data entries

70 entries across 70 versions & 1 rubygems

Version Path
polyphony-0.95 lib/polyphony/adapters/readline.rb
polyphony-0.94 lib/polyphony/adapters/readline.rb
polyphony-0.93 lib/polyphony/adapters/readline.rb
polyphony-0.92 lib/polyphony/adapters/readline.rb
polyphony-0.91 lib/polyphony/adapters/readline.rb
polyphony-0.90 lib/polyphony/adapters/readline.rb
polyphony-0.89 lib/polyphony/adapters/readline.rb
polyphony-0.87 lib/polyphony/adapters/readline.rb
polyphony-0.86 lib/polyphony/adapters/readline.rb
polyphony-0.85 lib/polyphony/adapters/readline.rb
polyphony-0.84.1 lib/polyphony/adapters/readline.rb
polyphony-0.84 lib/polyphony/adapters/readline.rb
polyphony-0.83 lib/polyphony/adapters/readline.rb
polyphony-0.82 lib/polyphony/adapters/readline.rb
polyphony-0.81.1 lib/polyphony/adapters/readline.rb
polyphony-0.81 lib/polyphony/adapters/readline.rb
polyphony-0.80 lib/polyphony/adapters/readline.rb
polyphony-0.79 lib/polyphony/adapters/readline.rb
polyphony-0.78 lib/polyphony/adapters/readline.rb
polyphony-0.77 lib/polyphony/adapters/readline.rb