nginx/src
Maxim Dounin 408e49fed6 Perl: added PERL_SET_INTERP().
For Perl compiled with threads, without PERL_SET_INTERP() the PL_curinterp
remains set to the first interpreter created (that is, one created at
original start).  As a result after a reload Perl thinks that operations
are done withing a thread, and, most notably, denies to change environment.

For example, the following code properly works on original start,
but fails after a reload:

    perl 'sub {
        my $r = shift;

        $r->send_http_header("text/plain");

        $ENV{TZ} = "UTC";
        $r->print("tz: " . $ENV{TZ} . " (localtime " . (localtime()) . ")\n");
        $ENV{TZ} = "Europe/Moscow";
        $r->print("tz: " . $ENV{TZ} . " (localtime " . (localtime()) . ")\n");

        return OK;
    }';

To fix this, PERL_SET_INTERP() added anywhere where PERL_SET_CONTEXT()
was previously used.

Note that PERL_SET_INTERP() doesn't seem to be documented anywhere.
Yet it is used in some other software, and also seems to be the only
solution possible.
2016-12-07 19:03:19 +03:00
..
core Fixed spelling of logical AND operator, no functional changes. 2016-12-07 13:54:30 +03:00
event SSL: $ssl_curves (ticket #1088). 2016-12-05 22:23:23 +03:00
http Perl: added PERL_SET_INTERP(). 2016-12-07 19:03:19 +03:00
mail Mail: extensible auth methods in pop3 module. 2016-10-18 19:38:46 +03:00
misc Style: fix typo. 2014-07-08 03:03:14 -07:00
os Cache: cache manager limits. 2016-10-05 14:22:30 +03:00
stream SSL: $ssl_curves (ticket #1088). 2016-12-05 22:23:23 +03:00