Tobias S. Josefowitz @ Pike developers forum wrote:
I can now confirm that I've been running three hours with io->this = 0 at destruct, and there have not been any coredumps yet. Seems promising.
Four hours now, no coredump. Statistically relatively strong evidence.
I'm still a bit surprised by the premise that a CMODs PIKEFUNs would be entered in/with an object *after* it has been destructed... you guard function entry, so this is apparently not a case of our object getting destructed while we are already executing.
I would think that this is simply not supposed to happen (and that therefore fixing it at this level is the wrong thing to do).
Entering destructed objects happens "all the time" when callbacks to memberfunctions in already destructed objects are being called. Normal Pike deals with this, and thus PIKEFUN's have to guard against it too.