develooper Front page | perl.ithreads | Postings from August 2002

Re: Thread-Tie-0.01

From:
Arthur Bergman
Date:
August 9, 2002 15:24
Subject:
Re: Thread-Tie-0.01
Message ID:
A563355A-ABE6-11D6-8740-003065D64CBE@contiller.se

On fredag, augusti 9, 2002, at 10:12 , Elizabeth Mattijsen wrote:

>
> Shared variables in this approach are truly shared.  The value of a 
> variable
> only exists once in memory.  This implementation also circumvents the 
> memory
> leak that currently (threads::shared version 0.90) plagues any shared 
> array
> or shared hash access.
>
> =

You will find that this is not true :-(, mostly because of perl deals 
with tieing.

Perl will always copy the result from a tied call into the variable that 
is tied.

so in effect

tie $foo, "Tie";

sub Tie::FETCH {
	return "hi";
}

will result in

print $foo;

not being print tied($foo)->FETCH(); but rather that it will be

$foo = tied($foo)->FETCH; print $foo;

so before every access to the tied object, FETCH is called and the 
return value is copied into the tied variable which is then used as a 
normal perl variable.

this is why I want to replace magic with PMC, this is also why tied 
variables are 2x as slowas doing tied($foo)->FETCH directly

Arthur




nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About