We can more effectly nuke circular references by clearing
the entire PSGI $env, not just particular keys, when
there are self-referential fields such as "qspawn.response"
in our environment.
sub {
my $env = $self->{env};
$self->{env} = undef;
+ %$env = () if $env; # prevent circular references
$self->write("0\r\n\r\n") if $alive == 2;
$self->write(sub{$alive ? next_request($self) : $self->close});
}
my $self = shift;
my $forward = $self->{forward};
my $env = $self->{env};
- delete $env->{'psgix.io'} if $env; # prevent circular references
+ %$env = () if $env; # prevent circular references
$self->{pull} = $self->{forward} = $self->{env} = undef;
if ($forward) {
eval { $forward->close };