[aosd-discuss] "Around" advice

Eric Bodden eric.bodden at mail.mcgill.ca
Wed May 23 14:59:01 EDT 2007


The point it that unlike in a real continuation no state is being
stored. As you can see, proceed() here has no arguments, so all that
proceed does is call basically call the original code *location*. Even
if proceed(..) had arguments, those would be *explicit* in the code.

Eric

On 23/05/07, Pascal Costanza <pc at p-cos.net> wrote:
>
> On 23 May 2007, at 15:52, Eric Bodden wrote:
>
> > On 23/05/07, vamsidhar sharma <bvamsidhar at yahoo.com> wrote:
> >> I found examples where the return value is being modified before
> >> sending it or pointcut excution is made conditional. Didn't find
> >> anything more real than these.
> >
> > Another way to us around-advice is to generate a closure that kind of
> > holds the continuation of the execution and can then be invoked later
> > on (see Laddad's book "AOP in action"):
> >
> > Object around(): pc()  {
> >   runnables.add(new Runnable() {
> >     public void run() {
> >       return proceed();
> >     }
> >   });
> >   return null;
> > }
> >
> > I have used this technique in a similar way to implement a fault
> > tolerance layer.
>
> This indeed smells like a full continuation, but I can't imagine how
> this would work in a JVM. What am I missing?
>
>
> Pascal
>
> --
> Pascal Costanza, mailto:pc at p-cos.net, http://p-cos.net
> Vrije Universiteit Brussel, Programming Technology Lab
> Pleinlaan 2, B-1050 Brussel, Belgium
>
>
>
>
>


-- 
Eric Bodden
Sable Research Group
McGill University, Montréal, Canada



More information about the discuss mailing list