Dan Sugalski wrote:

As well as involving much finding of instances, and moving of their attribute
values, this isn't thread safe (please excuse my lack of PASM syntax
knowledge):



Yeah, adding an attribute requires a stop-the-world action, as every object that has the modified class needs to be modified. That's a non-trivial activity.


But, even if we stop everything until all objects got their attribute list updated, any offsets previously obtained via C<classoffset> may still be bogus afterwards. And there is no way for the code that holds the offset to know that either.

Maybe we should provide a version of C<getattribute> that takes relative offset and the class name/PMC and then make that operation atomic?

Reply via email to