Class: Async::HTTP::Body::Pipe
- Inherits:
-
Object
- Object
- Async::HTTP::Body::Pipe
- Defined in:
- lib/async/http/body/pipe.rb
Instance Method Summary collapse
- #close ⇒ Object
-
#initialize(input, output = Writable.new, task: Task.current) ⇒ Pipe
constructor
If the input stream is closed first, it’s likely the output stream will also be closed.
- #to_io ⇒ Object
Constructor Details
#initialize(input, output = Writable.new, task: Task.current) ⇒ Pipe
If the input stream is closed first, it’s likely the output stream will also be closed.
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/async/http/body/pipe.rb', line 17 def initialize(input, output = Writable.new, task: Task.current) @input = input @output = output head, tail = IO::Socket.pair(Socket::AF_UNIX, Socket::SOCK_STREAM) @head = IO::Stream.new(head) @tail = tail @reader = nil @writer = nil task.async(transient: true, &self.method(:reader)) task.async(transient: true, &self.method(:writer)) end |
Instance Method Details
#close ⇒ Object
37 38 39 40 41 42 |
# File 'lib/async/http/body/pipe.rb', line 37 def close @reader&.stop @writer&.stop @tail.close end |
#to_io ⇒ Object
33 34 35 |
# File 'lib/async/http/body/pipe.rb', line 33 def to_io @tail end |