type C
   x::Symbol
 
   function C(x::Symbol)
      c = new(x)
      finalizer(c, c->println(1, c, 2))
      c
    end
 end

a = C(:x)
a = 1
gc()

error in running finalizer: ErrorException("task switch not allowed from 
inside gc finalizer")

However, it works if I manually call finalizer(a).

So, what's wrong with my usage of finalizer?

Also, it seems I can only use finalizer(a) once, it doesn't work for the 
2nd time? 

Reply via email to