Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re^2: Threads and fork and CLONE, oh my!

by Anonymous Monk
on Nov 15, 2005 at 14:03 UTC ( #508613=note: print w/ replies, xml ) Need Help??


in reply to Re: Threads and fork and CLONE, oh my!
in thread Threads and fork and CLONE, oh my!

What was wrong with the UUID proposal? It sound like you abandoned that idea. I interpret it to mean create a scalar ref whose object is a unique number. Then, the dereferenced value, not the volatile address, becomes the object key. The UUID proposal would have much less overhead than having a CLONE method repair all the dangling links in each hash.


Comment on Re^2: Threads and fork and CLONE, oh my!
Re^3: Threads and fork and CLONE, oh my!
by esharris (Monk) on Nov 15, 2005 at 14:08 UTC
    I'm the anonymous monk.
Re^3: Threads and fork and CLONE, oh my!
by Zaxo (Archbishop) on Nov 15, 2005 at 14:26 UTC

    I didn't spot anything wrong with it; I just didn't address that part of the problem.

    After Compline,
    Zaxo

      I thought that if we got away from using the refaddr, we would solve the problem. Won't the following methodology work? Here is my attempt to create an alternate ID. I don't want to post the whole program inline; here are the changes.
      11c11,15 < *ID = \&Scalar::Util::refaddr; --- > sub ID ($) { > my ($self) = @_; > > return ref($self) ? $$self : ''; > } 28c32 < *{ $caller . '::ident' } = \&Scalar::Util::refaddr; --- > *{ $caller . '::ident' } = \&Class::Std::ID; 360a365,366 > my $count = 0; > 370a377 > $$new_obj = $count++; 512c519,523 < *ID = \&Scalar::Util::refaddr; --- > sub ID ($) { > my ($self) = @_; > > return ref($self) ? $$self : ''; > } 519a531 > $$new_obj = $count++;
      We won't care if the address of the anonymous hash changes; that is not the key. We have an alternate key that stays in tact. This is my first stab at it. When I made tried this on my Mac, I barfed on the coercions test.
      % make test PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_h +arness(0, 'blib/lib', 'blib/arch')" t/*.t t/00.load.........# Testing Class::Std v0.0.4 t/00.load.........ok + t/access..........ok + t/automethod......ok + t/coercions.......Deep recursion on anonymous subroutine at /Users/esh +arris/.cpan/build/Class-Std-0.0.4/blib/lib/Class/Std.pm line 14. Deep recursion on subroutine "Class::Std::ID" at (eval 26) line 3. t/coercions.......dubious + Test returned status 0 (wstat 11, 0xb) t/cumulative......ok + t/dump............ok + t/pod-coverage....skipped all skipped: Test::Pod::Coverage 1.04 required for testing POD + coverage t/pod.............skipped all skipped: Test::Pod 1.14 required for testing POD t/simple..........ok + Failed Test Stat Wstat Total Fail Failed List of Failed ---------------------------------------------------------------------- +--------- t/coercions.t 0 11 ?? ?? % ?? 2 tests skipped. Failed 1/9 test scripts, 88.89% okay. 0/152 subtests failed, 100.00% o +kay. make: *** [test_dynamic] Error 2

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://508613]
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: (14)
As of 2015-07-07 13:55 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (88 votes), past polls