def _ngx_mruby_prepare_fiber(app_proc)
p "call _ngx_mruby_prepare_fiber"
fiber = Fiber.new do
p "call fiber"
app_proc.call
p "done fiber"
end
Proc.new do
p "call resume proc"
rv = fiber.resume
is_alive = fiber.alive?
p [is_alive, rv]
end
end
これのapp_procにはmruby_rewrite_handler {code}のcodeのprocが入っているのだが、_ngx_mruby_prepare_fiberをC側からfuncallでprocを渡して、実行して帰ってきたprocをさらにfuncallで実行すると、なぜかapp_proc.callでC側にreturnされてしまう(fiber.resume以下のfiber.aliveなどが実行されない)けどこれは仕様か、というのを明日にでもMatzさんに聞く