Please take our Survey
logo       

Choosing A Webhost:
A web hosting service is a type of Internet hosting service that allows individuals and organizations to provide their own website accessible via the World Wide Web. Web hosts are companies that provide space on a server they own for use by their clients as well as providing Internet connectivity, typically in a data center. Web hosts can also provide data center space and connectivity to the Internet for servers they do not own to be located in their data center, called colocation. more...

Re: [patch] shutting down 'constant sub redefined' in Apache::Reload: msg#00277

apache.mod-perl.devel

Subject: Re: [patch] shutting down 'constant sub redefined' in Apache::Reload

On Mon, 2003-05-26 at 15:46, Stas Bekman wrote:
> Currently if you have used a constant sub in your code, Apache::Reload will
> complain every time the code is reloaded. And for a good reason:
> http://groups.google.com/groups?threadm=20020519214851.3981.qmail%40airtrout.tregar.com
> http://archive.develooper.com/perl5-changes%40perl.org/msg04919.html
>
> However it's a bad thing not being able to shut those warning, if you know
> that you didn't modify the constant subs. The approach suggested by Rafael is
> to use $SIG{__WARN__} override, only for those who know what they are doing:
>
> PerlSetVar ReloadNoWarningsConstantRedefine on
>
> here is the patch. Not sure if that variable is not too long... may be
> shouldn't use reverse logic but:
>
> PerlSetVar ReloadWarningsConstantRedefine off
>
> with 'on' being the default.

Sure prefers non-reverse logic myself ;-)

> better name suggestions are welcome as well.

PerlSetVar ReloadAllowConstantRedefine on/off ???

> Index: lib/Apache/Reload.pm
> ===================================================================
> RCS file: /home/cvs/modperl-2.0/lib/Apache/Reload.pm,v
> retrieving revision 1.10
> diff -u -r1.10 Reload.pm
> --- lib/Apache/Reload.pm 8 May 2003 00:31:27 -0000 1.10
> +++ lib/Apache/Reload.pm 26 May 2003 07:38:31 -0000
> @@ -63,6 +63,9 @@
>
> my $TouchFile = ref($o) && $o->dir_config("ReloadTouchFile");
>
> + my $NoWarningsConstantRedefine = ref($o) &&
> + (lc($o->dir_config("ReloadNoWarningsConstantRedefine") || '') eq
> 'on');;
> +
> my $TouchModules;
>
> if ($TouchFile) {
> @@ -141,6 +144,8 @@
> undef %{$symref};
> }
> no warnings FATAL => 'all';
> + local $SIG{__WARN__} = \&skip_redefine_const_sub_warn
> + if $NoWarningsConstantRedefine;
> require $key;
> warn("Apache::Reload: process $$ reloading $key\n")
> if $DEBUG;
> @@ -149,6 +154,11 @@
> }
>
> return Apache::OK;
> +}
> +
> +sub skip_redefine_const_sub_warn {
> + return if $_[0] =~ /^Constant subroutine [\w:]+ redefined at/;
> + CORE::warn(@_);
> }
>
> 1;
>

I am not sure about this one, but I would say that this will cut the
grass from under the feet of a module that installed his/her own
SIG{__WARN__} handler, won't it ?

Wouldn't it be possible for Apache::Reload to somehow turn off the CONST
flag on that CV before attempting to re-define it? (didn't check if
that's even remotly possibly)

> __________________________________________________________________
> Stas Bekman JAm_pH ------> Just Another mod_perl Hacker
> http://stason.org/ mod_perl Guide ---> http://perl.apache.org
> mailto:stas@xxxxxxxxxx http://use.perl.org http://apacheweek.com
> http://modperlbook.org http://apache.org http://ticketmaster.com
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@xxxxxxxxxxxxxxx
> For additional commands, e-mail: dev-help@xxxxxxxxxxxxxxx
--
-- -----------------------------------------------------------------------------
Philippe M. Chiasson /gozer\@(cpan|ectoplasm)\.org/ 88C3A5A5 (122FF51B/C634E37B)
http://gozer.ectoplasm.org/ F9BF E0C2 480E 7680 1AE5 3631 CB32 A107 88C3 A5A5
Q: It is impossible to make anything foolproof because fools are so ingenious.
perl -e'$$=\${gozer};{$_=unpack(P7,pack(L,$$));/^JAm_pH\n$/&&print||$$++&&redo}'

Attachment: signature.asc
Description: This is a digitally signed message part

<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

Recently Viewed:
solaris.opensol...    editors.vim/200...    web.turbogears....    jakarta.ant.dev...    mathematics.max...    text.unicode.ge...    lang.ruby.core/...    xfce.announce/2...    network.centeri...    php.cvs.pear/20...    user-groups.lin...    kde.devel.quant...    file-systems.ar...    redhat.fedora.t...    apple.fink.auto...    gnome.orbit.gen...    qplus.devel/200...    culture.transpo...    video.dri.user/...    operators.nanog...   
Home | advertise | OSDir is an inevitable website. super tiny logo

Free Magazines

Cisco News
Receive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business.
subscribe

Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field.
subscribe

The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business.
subscribe

Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company.
subscribe

Total Telecom Total Telecom is "The Economist of the communications industry".
subscribe

Navigation