about summary refs log tree commit homepage
path: root/Documentation
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2010-05-28 03:58:22 +0000
committerEric Wong <normalperson@yhbt.net>2010-05-28 03:58:34 +0000
commit93fc16377eca1a1d5103fd91a576ff6c469f4ab1 (patch)
tree85241a354cc0fe7039b3425a160b5595779284ff /Documentation
parent49c45c6ea09464862779b09ad7f22c30977a2060 (diff)
downloadrainbows-93fc16377eca1a1d5103fd91a576ff6c469f4ab1.tar.gz
I still have a hard time keeping track of what's capable of
what.
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/comparison.haml51
1 files changed, 45 insertions, 6 deletions
diff --git a/Documentation/comparison.haml b/Documentation/comparison.haml
index ae3348a..afe8484 100644
--- a/Documentation/comparison.haml
+++ b/Documentation/comparison.haml
@@ -99,6 +99,20 @@
     %td.r19 Yes
     %td.rbx No
     %td.slow Yes
+  %tr.comp_row
+    %td.mod WriterThreadPool
+    %td.tee Yes
+    %td.r18 Yes
+    %td.r19 Yes
+    %td.rbx Yes
+    %td.slow no
+  %tr.comp_row
+    %td.mod WriterThreadSpawn
+    %td.tee Yes
+    %td.r18 Yes
+    %td.r19 Yes
+    %td.rbx Yes
+    %td.slow no
 %ul
   %li
     RevThread* + 1.8 requires Rev &gt;= 0.3.2 for reasonable performance
@@ -203,7 +217,16 @@
       %a(href="Rainbows/Fiber/IO.html") Rainbows::Fiber::IO
     %td.thr No
     %td.reent Yes
-
+  %tr.comp_base
+    %td.mod WriterThreadPool
+    %td.slowio avoid
+    %td.thr Maybe
+    %td.reent Maybe
+  %tr.comp_base
+    %td.mod WriterThreadSpawn
+    %td.slowio avoid
+    %td.thr Maybe
+    %td.reent Maybe
 %ul
   %li
     Requirements for single thread reentrancy are loose in that there is
@@ -219,6 +242,9 @@
     on UNIX domain sockets and named pipes.  Nearly all other operations
     on POSIX filesystems can be considered "fast", or at least
     uninterruptible.
+  %li
+    WriterThread{Pool,Spawn} will require thread safety if your response
+    body is dynamically generated during the body#each call.
 
 %h2 middlewares and frameworks
 %br
@@ -250,7 +276,7 @@
     %td.ws Sunshowers
   %tr.comp_row
     %td.mod ThreadPool
-    %td.devfd no-op
+    %td.devfd Yes
     %td.app_pool Yes
     %td.lock Yes
     %td.async standard Ruby
@@ -264,7 +290,7 @@
     %td.ws no
   %tr.comp_row
     %td.mod ThreadSpawn
-    %td.devfd no-op
+    %td.devfd Yes
     %td.app_pool Yes
     %td.lock Yes
     %td.async standard Ruby
@@ -316,15 +342,28 @@
     %td.devfd Yes
     %td.app_pool Yes
     %td.lock Dumb
-    %td.async standard Ruby
+    %td.async Rev, standard Ruby
     %td.ws no
   %tr.comp_row
     %td.mod RevFiberSpawn
     %td.devfd Yes
     %td.app_pool Yes
     %td.lock No!
-    %td.async Rainbows::Fiber::IO, Rainbows.sleep
-
+    %td.async Rev, Rainbows::Fiber::IO, Rainbows.sleep
+  %tr.comp_row
+    %td.mod WriterThreadPool
+    %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
+  %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
 %ul
   %li
     "No!" means it's fundamentally incompatible, use an