[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [OSSTEST PATCH 6/9] db_retry: Suppress an "exiting via last" warning

On Thu, 2015-12-17 at 17:48 +0000, Ian Jackson wrote:
> Ian Campbell writes ("Re: [OSSTEST PATCH 6/9] db_retry: Suppress an
> "exiting via last" warning"):
> > On Thu, 2015-12-17 at 17:06 +0000, Ian Jackson wrote:
> > > This warning appears when db_retry_abort is used, since 2b069b6c
> > > "Database locking: Perl: Retry all deadlocks in PostgreSQL".
> > 
> > Is the reason for not turning this into a return related to the
> fact this
> > is within an eval, not a proper sub? But then I'm not really sure
> why it is
> > warning (I suppose eval has some sub like properties?).
> I think it's a warning because eval does not trap `last's (nor
> `return's).  This means that if you think `eval' can be used to make
> try-finally, you will be disappointed.
> (Unlike, in Tcl, say, where `break' and `continue' and indeed 
> `return
> are implemented as exceptions.)
> Why would `return' be better ?  It would still generate the same
> warning.  Leaving the loop via `last' seems less heavyweight than
> using `return' and less likely to produce bugs in future patches whose
> authors don't spot the non-local exit.

I think I'm probably confused about the scope of the eval vs
{last,return} etc. In any case, that's no reason to block this patch
AFAICT: Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>


> > Related to 
> https://rt.perl.org/Public/Bug/Display.html?id=29238 perhaps.
> I don't think so, although there seems to be a fair amount of
> confusion there.
> Ian.

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.