Why does the following code print the line "doing other stuff" twice?


def cc
    puts "do A"
    puts "----> 1. #{caller}"
    callcc { |cont| return cont}
    puts "----> 2. #{caller}"
    puts "do B"
end

puts "calling cc"
cont = cc()
puts "doing other stuff"
cont.call() if cont
puts "end of work"
puts


OUTPUT:
calling cc
do A
----> 1. remove2.rb:59
doing other stuff
----> 2. remove2.rb:59
do B
doing other stuff
end of work