Follow-up Comment #9, bug #24784 (project gnustep):

Yes it *is* complicated :-(

And yes, the main problems are because I had to maintain performance in the
normal case and maintain binary backwards compatibility.

Unfortunately the idea of the meta-class use does not seem workable (unless I
misunderstand).  The dispatch table of the class contains its instance methods
and the dispatch table of the meta-class contains the class methods.

During execution of +initialize we therefore want both dtables to be
available to the current thread, so that +initialize can call both class and
(eg if a single shared instance is created at that point) instance methods. 
At the same time we want neither dispatch table to be visible to other threads
(so the other threads can't execute eiter class methods or instance methods).

    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?24784>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/




_______________________________________________
Bug-gnustep mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-gnustep

Reply via email to