Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

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

by Anonymous Monk
on Nov 15, 2005 at 14:03 UTC ( [id://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.

Replies are listed 'Best First'.
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
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.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (4)
As of 2024-03-28 23:12 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found