Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re^2: Anti-inside-out-object-ism

by jdhedden (Deacon)
on Dec 09, 2005 at 21:28 UTC ( #515657=note: print w/ replies, xml ) Need Help??


in reply to Re: Anti-inside-out-object-ism
in thread Anti-inside-out-object-ism

xdg provided the original insight on how to make inside-out objects thread-safe in Threads and fork and CLONE, oh my!.

threads::shared provides the capability to share variables between threads such that changing the value in one thread makes that change visible in another thread. Object::InsideOut is unique among inside-out object support modules (and, to my knowledge, all other object support modules, as well) in providing support for threads::shared, thus giving you the capability to share objects between threads. As for how to do it, you'd have to look at the module's code to see how. It is not a trivial process.


Remember: There's always one more bug.


Comment on Re^2: Anti-inside-out-object-ism
Re^3: Anti-inside-out-object-ism
by xdg (Monsignor) on Dec 09, 2005 at 21:36 UTC
    xdg provided the original insight on how to make inside-out objects thread-safe in Threads and fork and CLONE, oh my!.

    Though it bears repeating that this is only possible on Perl 5.8 or better which supports the special CLONE method.

    Whether using threads or threads::shared in Perl is a good idea or not is a whole separate issue. (c.f. Things you need to know before programming Perl ithreads and Re: Reliable asynchronous processing). However, it's important for people to realize that forking on Win32 actually uses threads (c.f. perlfork) so this behavior of inside-out objects needs to be continually flagged.

    None of these are "deal-killers" for inside-out objects, but they do require awareness and management of complexity. That said, I think jdhedden has done a great job with Object::InsideOut (as he did with Math::Random::MT::Auto) in creating something that might well serve as the gold-standard in the category.

    -xdg

    Code written by xdg and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://515657]
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: (3)
As of 2014-07-12 19:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    When choosing user names for websites, I prefer to use:








    Results (240 votes), past polls