Git Product home page Git Product logo

celluloid-http's People

Contributors

kbrock avatar nox73 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

celluloid-http's Issues

Connection fails

Perhaps the README forgot to tell me something, but I am getting all-the-way-down-to-C errors when trying to do a GET request to a URL.

Celluloid::Http.get "http://ollehost.dk"  # is the shortest failing reproduce.
/Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-io-0.13.1/lib/celluloid/io/reactor.rb:43: [BUG] Segmentation fault
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin12.3.0]

-- Control frame information -----------------------------------------------
c:0017 p:0207 s:0072 b:0070 l:000069 d:000069 METHOD /Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-io-0.13.1/lib/celluloid/io/reactor.rb:43
c:0016 p:0015 s:0064 b:0064 l:000063 d:000063 METHOD /Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-io-0.13.1/lib/celluloid/io/reactor.rb:26
c:0015 p:0092 s:0060 b:0060 l:000059 d:000059 METHOD /Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-io-0.13.1/lib/celluloid/io.rb:42
c:0014 p:0020 s:0055 b:0055 l:000054 d:000054 METHOD /Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-io-0.13.1/lib/celluloid/io/stream.rb:42
c:0013 p:0031 s:0052 b:0052 l:000048 d:000051 BLOCK  /Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-io-0.13.1/lib/celluloid/io/tcp_socket.rb:87
c:0012 p:0459 s:0049 b:0049 l:000048 d:000048 METHOD /Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-io-0.13.1/lib/celluloid/io/tcp_socket.rb:84
c:0011 p:---- s:0040 b:0040 l:000039 d:000039 FINISH
c:0010 p:---- s:0038 b:0038 l:000037 d:000037 CFUNC  :new
c:0009 p:0025 s:0033 b:0033 l:000032 d:000032 METHOD /Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-http-0.0.5/lib/celluloid-http/connection.rb:6
c:0008 p:---- s:0028 b:0028 l:000027 d:000027 FINISH
c:0007 p:---- s:0026 b:0026 l:000025 d:000025 CFUNC  :public_send
c:0006 p:0021 s:0020 b:0020 l:000019 d:000019 METHOD /Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-0.13.0/lib/celluloid/calls.rb:11
c:0005 p:0039 s:0013 b:0013 l:000012 d:000012 METHOD /Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-0.13.0/lib/celluloid/calls.rb:63
c:0004 p:0014 s:0007 b:0007 l:000260 d:000006 BLOCK  /Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-0.13.0/lib/celluloid/actor.rb:326
c:0003 p:0135 s:0005 b:0005 l:0004f8 d:000004 BLOCK  /Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-0.13.0/lib/celluloid/tasks/task_fiber.rb:28
c:0002 p:---- s:0003 b:0003 l:000002 d:000002 FINISH
c:0001 p:---- s:0001 b:-001 l:000000 d:000000 ------

-- Ruby level backtrace information ----------------------------------------
/Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-0.13.0/lib/celluloid/tasks/task_fiber.rb:28:in `block in initialize'
/Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-0.13.0/lib/celluloid/actor.rb:326:in `block in handle_message'
/Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-0.13.0/lib/celluloid/calls.rb:63:in `dispatch'
/Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-0.13.0/lib/celluloid/calls.rb:11:in `dispatch'
/Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-0.13.0/lib/celluloid/calls.rb:11:in `public_send'
/Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-http-0.0.5/lib/celluloid-http/connection.rb:6:in `open'
/Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-http-0.0.5/lib/celluloid-http/connection.rb:6:in `new'
/Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-io-0.13.1/lib/celluloid/io/tcp_socket.rb:84:in `initialize'
/Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-io-0.13.1/lib/celluloid/io/tcp_socket.rb:87:in `rescue in initialize'
/Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-io-0.13.1/lib/celluloid/io/stream.rb:42:in `wait_writable'
/Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-io-0.13.1/lib/celluloid/io.rb:42:in `wait_writable'
/Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-io-0.13.1/lib/celluloid/io/reactor.rb:26:in `wait_writable'
/Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-io-0.13.1/lib/celluloid/io/reactor.rb:43:in `wait'

Improve Documentation.

At the moment the documentation is pretty simple and just mentions the GET part of Celluloid::HTTP. It would be great to mention also the handling with POST, especially with passing additional parameters like content types and user agents.

Multiplex HTTP requests in a single Actor

It is probably unnecessary to have a new Actor for each TCPSocket.
Being an I/O-bound problem, it might make sense to reuse a Connection for many requests.

It is possible to have many method calls running concurrently on the same actor.

@jimweirich has a great talk showing this.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.