def index
p "INDEX, #{Fiber.current.object_id}" # <- #1
EventMachine.run {
http = EventMachine::HttpRequest.new('http://google.com/').get :query => {'keyname' => 'value'}
http.errback { p "Uh oh, #{Fiber.current.object_id}"; EM.stop } # <- #2
http.callback {
p "#{http.response_header.status}, #{Fiber.current.object_id}" # <- #3
p "#{http.response_header}"
p "#{http.response}"
EventMachine.stop
}
}
render text: 'test1'
end
このコードでは、 、、行で異なるFiber
ID を取得することを期待していました。しかし、すべてのファイバー オブジェクトの ID は同じでした。試してみましたが、やはり同じ結果でした。
私は何を誤解していますか?そのコードは非同期でも実行されますか?#1
#2
#3
Thread.current.object_id
PS私が使用ruby 2.0
していて、コードが実行されていますrails4