From 4d8304bf0aa5665e8f8474dfb96019297fa0c2b9 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Wed, 25 Nov 2009 01:44:34 -0800 Subject: add FiberSpawn concurrency model This one seems a easy to get working and supports everything we need to support from the server perspective. Apps will need modified drivers, but it doesn't seem too hard to add more/better support for wrapping IO objects with Fiber::IO. --- lib/rainbows/dev_fd_response.rb | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'lib/rainbows/dev_fd_response.rb') diff --git a/lib/rainbows/dev_fd_response.rb b/lib/rainbows/dev_fd_response.rb index e4e5f0c..5b90d24 100644 --- a/lib/rainbows/dev_fd_response.rb +++ b/lib/rainbows/dev_fd_response.rb @@ -36,6 +36,10 @@ module Rainbows else headers['X-Rainbows-Autochunk'] = 'no' end + + # we need to make sure our pipe output is Fiber-compatible + env["rainbows.model"] == :FiberSpawn and + return [ status, headers.to_hash, Fiber::IO.new(io,::Fiber.current) ] else # unlikely, char/block device file, directory, ... return response end -- cgit v1.2.3-24-ge0c7