Dave wrote:
Fri, 27, 2006 at 01:25:39PM -0700, Jan Dubois wrote:
Well, the MY_CXT macro may not support this directly, but they are
just syntactic sugar around storing values in the PL_modglobal hash
to avoid the hash access if you compile without MULTIPLICITY.
Er, I completely rewrote the MY_CXT* macros a few months ago to make them
a lot more efficient; they no longer use PL_modglobal, and only provide
one struct per source file - due to a static var per file (see START_MY_CXT).
Sorry, I completely forgot about this.
But anyways, PL_modglobal is still around to store per-interpreter
module data if one wants to use it.
Another (better) idea is to have 2 additional fields in the MY_CXT data:
one that stores the BT tid, and a pointer to the "global to the pool"
data. That way every thread can access this data through the MY_CXT,
and the BT thread can then free it when it is being destructed.
Either way, I think it is very desirable to *not* add additional
core variables if not absolutely necessary.
Cheers,
-Jan