On 13/07/2006, at 8:33, Ali ISIK wrote:
Hi, folks, I need some mod_perl wisdom regarding the current situation with inside-out classes. I am trying to compare, in particular, the following two: Class::Std Object::InsideOut I can see that O::I has advantages in o thread safety o (at least partial) foreign-inheritance support (the ability to inherit from non-inside-out classes) o speed (mainly due to array implementation of fields) o complete mod_perl support but I have some investment in Class::Std and I am trying to figure out whether I will have to convert my existing C::S CGI code to O::I for mod_perl compatibility. Are there any show-stoppers with C::S? I have seen some postings which declared Class::Std mod_perl-incompatible. The ideas put forth included: 1) crucial sub initialize() is in a CHECK block 2) custom :attributes break under mod_perl 3) some concerns about DESTROY I see that (1) may by now have been solved (is it?), as initialize() is now called from within new(), too. (2) seems to refer to :CUMULATIVE, :PRIVATE etc. Suppose I do not use these. Should I be ok, then? Are there any problems with the main :ATTR( ... ) facility? How about (3) and other possible weaknesses? I may need foreign-inheritance (inherit from CDBI) and thread-safety (use fork() and port to Win). Is C::S totally hopeless in these respects?
My experiments and understanding is that Class::Std (also was my preference and investment in coding) does not only fail on threads, but forks as well. This means it can not work with mod_perl at all.
The reason is that the all important identifier is a memory location - and that changes on write after a fork.
I have not actually tried using C:S with mod_perl - and other wiser people may have better advice.
Scott -- * - * http://www.osdc.com.au - Open Source Developers Conference * - * Scott Penrose Open source developer http://linux.dd.com.au/ [EMAIL PROTECTED] Dismaimer: Open sauce usually ends up never coming out (of the bottle). Please do not send me Word or PowerPoint attachments. See http://www.gnu.org/philosophy/no-word-attachments.html Microsoft is not the answer. It's the question. And the answer is no.