summary refs log tree commit homepage
path: root/t/app_deferred.ru
diff options
context:
space:
mode:
Diffstat (limited to 't/app_deferred.ru')
-rw-r--r--t/app_deferred.ru8
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,