ごとけんです

FOOのオブジェクトがGCされるときに必ず FOO#bye が呼ばれるように
するにはどうすれば良いでしょうか??

たとえば以下はあってます?? 気になるのは、self がGCされる寸前で
@x は参照可能かという点です。

class FOO
  require "final"

  def initialize(filename)
    @x = filename
    ObjectSpace.define_finalizer(self, lambda{bye})
  end

  def bye
    raise "gone" unless @x
    open(@x, "a+"){|f| f << $$ << ": bye\n"}
    @x = nil
  end
end


# スレッドのスレッドに絡みたいけど時間がない…

-- gotoken