2
"run"
ブロックはEMで(コンテキストスイッチなしで)全体として実行されますか?この例では、if
節に競合状態がありますか?EventMachineで競合状態が発生していますか?
EventMachine.run {
@current_value = 0
EventMachine::WebSocket.start(:host => "0.0.0.0", :port => 8080, :debug => true) do |ws|
ws.onopen {
@current_value += 1
if @current_value >= 4 # Race condition?
# Code Block
@current_value = 0
end
ws.onmessage { |msg|
# puts msg
}
ws.onclose {
# puts "disconnected"
}
}
end
end