about summary refs log tree commit homepage
path: root/t/simple-http_XAcceptEpoll.ru
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2011-01-24 20:04:20 -0800
committerEric Wong <normalperson@yhbt.net>2011-01-24 20:07:09 -0800
commit667b05819b85165061c445fb2c75ef161a5de5b6 (patch)
treeaf69ab3fe1f143c408c6c9013debf1c9afe26c72 /t/simple-http_XAcceptEpoll.ru
parent9f7f497dc21d904a1af20465318d85811daf0652 (diff)
downloadrainbows-667b05819b85165061c445fb2c75ef161a5de5b6.tar.gz
Edge-triggered epoll concurrency model with blocking accept() in
a (hopefully) native thread.  This is recommended over Epoll for
Ruby 1.9 users as it can workaround accept()-scalability issues
on multicore machines.
Diffstat (limited to 't/simple-http_XAcceptEpoll.ru')
-rw-r--r--t/simple-http_XAcceptEpoll.ru9
1 files changed, 9 insertions, 0 deletions
diff --git a/t/simple-http_XAcceptEpoll.ru b/t/simple-http_XAcceptEpoll.ru
new file mode 100644
index 0000000..fc0baa6
--- /dev/null
+++ b/t/simple-http_XAcceptEpoll.ru
@@ -0,0 +1,9 @@
+use Rack::ContentLength
+use Rack::ContentType
+run lambda { |env|
+  if env['rack.multithread'] == false && env['rainbows.model'] == :XAcceptEpoll
+    [ 200, {}, [ Thread.current.inspect << "\n" ] ]
+  else
+    raise env.inspect
+  end
+}