The official NGINX Open Source repository.
Go to file
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
auto Configure: honor dependencies of dynamic modules. 2016-11-21 16:49:19 +03:00
conf Added the REQUEST_SCHEME parameter. 2015-06-05 22:23:26 +03:00
contrib Contrib: unicode2nginx compatibility with recent Perl versions. 2016-08-24 15:53:17 +03:00
docs nginx-1.11.6-RELEASE 2016-11-15 18:11:46 +03:00
misc Updated OpenSSL used for win32 builds. 2016-10-11 16:52:48 +03:00
src Perl: added PERL_SET_INTERP(). 2016-12-07 19:03:19 +03:00
.hgtags release-1.11.6 tag 2016-11-15 18:11:46 +03:00