perl-embperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Smith <smi...@gmail.com>
Subject Re: @param seems to be shared between Execute calls
Date Wed, 21 Jul 2010 09:05:05 GMT
My problem is slightly different - though possibly a manifestation of the
same thing.  I find that param isn't cleaned up between requests.

I have two epl files:

set.epl:
[- $param[0]->{'test'} = 1 -]

get.epl
[+ Dumper(@param) +]

I find that the data from set.epl turns up when I make a subsequent request
for get.epl (in practice it's a bit more random than that if one is running
multiple processes, so I make a few requests for set.epl and then a few for
get.epl)

This only seems to be relevant if I reference param in the epl file I am
calling directly.  If I reference it in epl files which are loaded in by
Execute, then they do appear to get cleaned up.

Michael


On Tue, Jul 20, 2010 at 10:20 PM, Ed Grimm <ed_grimm@raytheon.com> wrote:

> Note that, under Apache, the cleanup code happens at the end of each
> request - each of which could have dozens of Execute calls, between which it
> is very definitely NOT called.
>
> I have not used Embperl much from within server scripts, but in my limited
> use there, I've never seen the cleanup code fire.  I suspect each script is
> considered 'a request' for the purposes of the cleanup code (well, as far as
> docs are concerned.  I don't know if the code actually fires on END.)
>
> --
> Ed Grimm
> Identity Services
>
>
>  From: Michael Stevens <michael.stevens@dianomi.com> To:
> embperl@perl.apache.org Cc: Michael Smith <michael.smith@dianomi.com>,
> cabell.demarcellus@dianomi.com Date: 07/20/2010 10:12 AM Subject: @param
> seems to be shared between Execute calls
> ------------------------------
>
>
>
> Hi.
>
> We're seeing an odd bug where @param seems to be shared between Execute
> calls in the same process. The following code is a test case for this:
>
> #!/usr/bin/perl -w
>
> use strict;
> use Embperl;
>
> my $output1;
>
> my $input = '[- $param[0]->{hello} = 42; -]';
>
> Embperl::Execute({
>                 inputfile => "blah",
>                 input => \$input,
>                 output => \$output1,
>                 });
>
> my $output2;
> my $input2 = '[- use Data::Dumper; print Dumper(\@param); -]';
>
> Embperl::Execute({
>                                  inputfile => "blah",
>                                  input => \$input2,
>                                  output => \$output2
>                 });
>
> Which on my machine outputs:
>
> $VAR1 = [
>           {
>             'hello' => 42
>           }
>         ];
>
> Surely this shouldn't happen?
>
> --
> Michael Stevens
> Dianomi Ltd
> 18 Buckingham Gate
> London SW1E 6LB
>
> Tel: 020 7802 5530
> Fax: 020 7630 7356
> www.dianomi.com
>
> The information in this message and any attachment is intended for the
> addressee and is confidential and may be subject to legal privilege.
> Dianomi Ltd, Registered Office: One America Square, Crosswall, London.
> EC3N 2SG. Registered in England and Wales with Company Registration
> Number 4513809. VAT registration number: 809754988
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: embperl-unsubscribe@perl.apache.org
> For additional commands, e-mail: embperl-help@perl.apache.org
>
>
>

Mime
View raw message