Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re: Seeking inside-out object implementations

by Codon (Friar)
on Dec 09, 2005 at 00:37 UTC ( #515432=note: print w/ replies, xml ) Need Help??


in reply to Seeking inside-out object implementations

We are finishing up a re-architecture of one of our internal applications. Most of the design inherits from an Inside-out object that we developed (Common::Thing). It uses blessed scalar refs as the object. Every class that inherits from this class also inherits new(), copy(), seed(), dump(), as_hash(), and DESTROY() object methods and a make_attributes() class method. Common::Thing does some stash manipulations to make a getter/setter method for each attribute in the derived class's name space. A derived class would look something like:

package My::Thing; use base qw(Common::Thing); __PACKAGE__->make_attributes( qw/ head should knees toes / ); # methods to do work go in here 1;

It has worked well for our purposes, but certainly fails thread safety. We did quite a bit of work to stabalize our application around threads, but finally gave up when the fact that Perl is not thread-safe became overpoweringly obvious.

Ivan Heffner
Sr. Software Engineer, DAS Lead
WhitePages.com, Inc.


Comment on Re: Seeking inside-out object implementations
Select or Download Code
Re^2: Seeking inside-out object implementations
by jdhedden (Deacon) on Dec 09, 2005 at 19:17 UTC
    Making inside-out objects thread-safe is not a trivial process, but it can be done. Object::InsideOut is thread-safe, and even goes further by providing support for threads::shared.

    You might consider converting your Common::Thing module into a wrapper around Object::InsideOut to give you the functionality you need.


    Remember: There's always one more bug.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://515432]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (7)
As of 2014-12-28 05:42 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (178 votes), past polls