Mercurial > hg > nginx-quic
view auto/lib/zlib/makefile.msvc @ 6820:eada22643e8b
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.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Wed, 07 Dec 2016 19:03:19 +0300 |
parents | 9d458803bbe0 |
children |
line wrap: on
line source
# Copyright (C) Igor Sysoev # Copyright (C) Nginx, Inc. CFLAGS = -nologo -O2 -Ob1 -Oi -Gs $(LIBC) $(CPU_OPT) zlib.lib: cd $(ZLIB) cl -c $(CFLAGS) adler32.c crc32.c deflate.c \ trees.c zutil.c compress.c \ inflate.c inffast.c inftrees.c link -lib -out:zlib.lib adler32.obj crc32.obj deflate.obj \ trees.obj zutil.obj compress.obj \ inflate.obj inffast.obj inftrees.obj