about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2011-05-09 02:13:51 +0000
committerEric Wong <normalperson@yhbt.net>2011-05-09 02:13:51 +0000
commit87632aac323bd41701900a03dc78bc307fa8229a (patch)
tree8d1919aacf58478b07dd993d87f3e1415f9d850e
parentd0336075a772d040b9fe3100098e1815ce609cb4 (diff)
downloadrainbows-87632aac323bd41701900a03dc78bc307fa8229a.tar.gz
Clearly users need to know about more options
-rw-r--r--Documentation/comparison.haml67
-rw-r--r--README12
2 files changed, 51 insertions, 28 deletions
diff --git a/Documentation/comparison.haml b/Documentation/comparison.haml
index 3289088..716ecc0 100644
--- a/Documentation/comparison.haml
+++ b/Documentation/comparison.haml
@@ -132,6 +132,20 @@
     %td.r19 Yes
     %td.rbx Yes
     %td.slow Yes
+  %tr.comp_row
+    %td.mod XEpollThreadSpawn
+    %td.tee Yes
+    %td.r18 Yes
+    %td.r19 Yes
+    %td.rbx Yes
+    %td.slow Yes
+  %tr.comp_row
+    %td.mod XEpollThreadPool
+    %td.tee Yes
+    %td.r18 Yes
+    %td.r19 Yes
+    %td.rbx Yes
+    %td.slow Yes
 %ul
   %li
     Cool.io should also work with Rubinius (though we haven't had time to test).
@@ -256,6 +270,16 @@
     %td.slowio No
     %td.thr No
     %td.reent No
+  %tr.comp_base
+    %td.mod XEpollThreadSpawn
+    %td.slowio thread-safe Ruby
+    %td.thr Yes
+    %td.reent No
+  %tr.comp_base
+    %td.mod XEpollThreadPool
+    %td.slowio thread-safe Ruby
+    %td.thr Yes
+    %td.reent No
 %ul
   %li
     Requirements for single thread reentrancy are loose in that there is
@@ -288,91 +312,78 @@
     %th.lock
       %a(href="http://rack.rubyforge.org/doc/Rack/Lock.html") Rack::Lock
     %th.async async
-    %th.ws Web Sockets
   %tr.comp_row
     %td.mod Unicorn/Base
     %td.devfd no-op
     %td.app_pool no-op
     %td.lock no-op
     %td.async lots of RAM :P
-    %td.ws no
   %tr.comp_row
     %td.mod Revactor
     %td.devfd no-op
     %td.app_pool Yes
     %td.lock No!
     %td.async Revactor itself
-    %td.ws no
   %tr.comp_row
     %td.mod ThreadPool
     %td.devfd Yes
     %td.app_pool Yes
     %td.lock Yes
-    %td.async standard Ruby
-    %td.ws no
+    %td.async thread-safe Ruby
   %tr.comp_row
     %td.mod Coolio
     %td.devfd Yes
     %td.app_pool no-op
     %td.lock no-op
     %td.async DevFdResponse
-    %td.ws no
   %tr.comp_row
     %td.mod ThreadSpawn
     %td.devfd Yes
     %td.app_pool Yes
     %td.lock Yes
-    %td.async standard Ruby
-    %td.ws no
+    %td.async thread-safe Ruby
   %tr.comp_row
     %td.mod EventMachine
     %td.devfd Yes
     %td.app_pool no-op
     %td.lock no-op
     %td.async async_sinatra, Cramp, rack-fiber_pool
-    %td.ws no
   %tr.comp_row
     %td.mod CoolioThreadSpawn
     %td.devfd Yes
     %td.app_pool Yes
     %td.lock Dumb
-    %td.async standard Ruby
-    %td.ws no
+    %td.async thread-safe Ruby
   %tr.comp_row
     %td.mod FiberSpawn
     %td.devfd Yes
     %td.app_pool Yes
     %td.lock No!
     %td.async Rainbows::Fiber::IO, Rainbows.sleep
-    %td.ws no
   %tr.comp_row
     %td.mod FiberPool
     %td.devfd Yes
     %td.app_pool Yes
     %td.lock No!
     %td.async Rainbows::Fiber::IO, Rainbows.sleep
-    %td.ws no
   %tr.comp_row
     %td.mod ActorSpawn
     %td.devfd no-op
     %td.app_pool Yes
     %td.lock Yes
-    %td.async standard Ruby
-    %td.ws no
+    %td.async thread-safe Ruby
   %tr.comp_row
     %td.mod NeverBlock
     %td.devfd Yes
     %td.app_pool Yes*
     %td.lock Yes*
     %td.async NeverBlock, async_sinatra
-    %td.ws no
   %tr.comp_row
     %td.mod CoolioThreadPool
     %td.devfd Yes
     %td.app_pool Yes
     %td.lock Dumb
-    %td.async Coolio, standard Ruby
-    %td.ws no
+    %td.async Coolio, thread-safe Ruby
   %tr.comp_row
     %td.mod CoolioFiberSpawn
     %td.devfd Yes
@@ -384,29 +395,37 @@
     %td.devfd Yes
     %td.app_pool no-op
     %td.lock no-op
-    %td.async Standard Ruby in response body only
-    %td.ws response body only
+    %td.async thread-safe Ruby in response body only
   %tr.comp_row
     %td.mod WriterThreadSpawn
     %td.devfd Yes
     %td.app_pool no-op
     %td.lock no-op
-    %td.async Standard Ruby in response body only
-    %td.ws response body only
+    %td.async thread-safe Ruby in response body only
   %tr.comp_row
     %td.mod Epoll
     %td.devfd Yes
     %td.app_pool no-op
     %td.lock no-op
     %td.async DevFdResponse
-    %td.ws no
   %tr.comp_row
     %td.mod XEpoll
     %td.devfd Yes
     %td.app_pool no-op
     %td.lock no-op
     %td.async DevFdResponse
-    %td.ws no
+  %tr.comp_row
+    %td.mod XEpollThreadPool
+    %td.devfd Yes
+    %td.app_pool Yes
+    %td.lock Yes
+    %td.async thread-safe Ruby
+  %tr.comp_row
+    %td.mod XEpollThreadSpawn
+    %td.devfd Yes
+    %td.app_pool Yes
+    %td.lock Yes
+    %td.async thread-safe Ruby
 %ul
   %li
     "No!" means it's fundamentally incompatible, use an
diff --git a/README b/README
index e6de8ce..6799530 100644
--- a/README
+++ b/README
@@ -22,18 +22,22 @@ suck; differently.
 For network concurrency, models we currently support are:
 
 * {Coolio}[link:Rainbows/Coolio.html]
+* {CoolioFiberSpawn}[link:Rainbows/CoolioFiberSpawn.html]
+* {CoolioThreadPool}[link:Rainbows/CoolioThreadPool.html]
+* {CoolioThreadSpawn}[link:Rainbows/CoolioThreadSpawn.html]
+* {Epoll}[link:Rainbows/Epoll.html]
 * {EventMachine}[link:Rainbows/EventMachine.html]
-* {FiberSpawn}[link:Rainbows/FiberSpawn.html]
 * {FiberPool}[link:Rainbows/FiberPool.html]
+* {FiberSpawn}[link:Rainbows/FiberSpawn.html]
 * {NeverBlock}[link:Rainbows/NeverBlock.html]
 * {Revactor}[link:Rainbows/Revactor.html]
 * {ThreadPool}[link:Rainbows/ThreadPool.html]
 * {ThreadSpawn}[link:Rainbows/ThreadSpawn.html]
 * {WriterThreadPool}[link:Rainbows/WriterThreadPool.html]
 * {WriterThreadSpawn}[link:Rainbows/WriterThreadSpawn.html]
-* {CoolioFiberSpawn}[link:Rainbows/CoolioFiberSpawn.html]
-* {CoolioThreadPool}[link:Rainbows/CoolioThreadPool.html]
-* {CoolioThreadSpawn}[link:Rainbows/CoolioThreadSpawn.html]
+* {XEpoll}[link:Rainbows/XEpoll.html]
+* {XEpollThreadPool}[link:Rainbows/XEpollThreadPool.html]
+* {XEpollThreadSpawn}[link:Rainbows/XEpollThreadSpawn.html]
 
 We have {many more on the way}[link:TODO.html] for handling network
 concurrency.  Additionally, we also use multiple processes (managed by