diff options
Diffstat (limited to 't/app_deferred.ru')
-rw-r--r-- | t/app_deferred.ru | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/t/app_deferred.ru b/t/app_deferred.ru index a70b33b..b3d7ff1 100644 --- a/t/app_deferred.ru +++ b/t/app_deferred.ru @@ -6,12 +6,18 @@ class DeferredApp < Struct.new(:app) def deferred?(env) - env["PATH_INFO"] == "/deferred" + env["PATH_INFO"] =~ %r{\A/deferred} end def call(env) env["rack.multithread"] or raise RuntimeError, "rack.multithread not true" body = "#{Thread.current.inspect}\n" + if env["PATH_INFO"] =~ %r{\A/deferred(\d+)} + delay = $1.to_i + File.open(ENV['fifo'], 'w') { |fp| fp.write "sleeping #{delay}s\n" } + body = "deferred sleep\n" + sleep(delay) + end headers = { "Content-Type" => "text/plain", "Content-Length" => body.size.to_s, |