--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: acceptor
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: acceptor
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: classifier
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: classifier
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: host
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: host
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: num_processors
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: num_processors
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: port
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: port
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: throttle
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: throttle
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: timeout
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: timeout
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: workers
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: workers
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: This is the main driver of Mongrel, while the Mongrel::HttpParser and Mongrel::URIClassifier make up the majority of how the server functions. It's a very simple class that just has a thread accepting connections and a simple HttpServer.process_client function to do the heavy lifting with the IO and Ruby.
- !ruby/struct:SM::Flow::P 
  body: "You use it by doing the following:"
- !ruby/struct:SM::Flow::VERB 
  body: "  server = HttpServer.new(&quot;0.0.0.0&quot;, 3000)\n  server.register(&quot;/stuff&quot;, MyNiftyHandler.new)\n  server.run.join\n"
- !ruby/struct:SM::Flow::P 
  body: The last line can be just server.run if you don't want to join the thread used. If you don't though Ruby will mysteriously just exit on you.
- !ruby/struct:SM::Flow::P 
  body: Ruby's thread implementation is &quot;interesting&quot; to say the least. Experiments with <b>many</b> different types of IO processing simply cannot make a dent in it. Future releases of Mongrel will find other creative ways to make threads faster, but don't hold your breath until Ruby 1.9 is actually finally useful.
constants: []

full_name: Mongrel::HttpServer
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: configure_socket_options
- !ruby/object:RI::MethodSummary 
  name: configure_socket_options
- !ruby/object:RI::MethodSummary 
  name: graceful_shutdown
- !ruby/object:RI::MethodSummary 
  name: graceful_shutdown
- !ruby/object:RI::MethodSummary 
  name: process_client
- !ruby/object:RI::MethodSummary 
  name: process_client
- !ruby/object:RI::MethodSummary 
  name: reap_dead_workers
- !ruby/object:RI::MethodSummary 
  name: reap_dead_workers
- !ruby/object:RI::MethodSummary 
  name: register
- !ruby/object:RI::MethodSummary 
  name: register
- !ruby/object:RI::MethodSummary 
  name: run
- !ruby/object:RI::MethodSummary 
  name: run
- !ruby/object:RI::MethodSummary 
  name: stop
- !ruby/object:RI::MethodSummary 
  name: stop
- !ruby/object:RI::MethodSummary 
  name: unregister
- !ruby/object:RI::MethodSummary 
  name: unregister
name: HttpServer
superclass: Object
