Re: "Around" advice
Pascal Costanza <[email protected]> Wed, 23 May 2007 21:34:30 +0200
| Newsgroups | gmane.comp.programming.aspect.general |
|---|---|
| Message-ID | <[email protected]> |
On 23 May 2007, at 20:59, Eric Bodden wrote: > 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. Ah - especially, it doesn't store the execution context: After a return from proceed(), nothing special happens anymore. That's the part I missed... Pascal > > Eric > > On 23/05/07, Pascal Costanza <[email protected]> wrote: >> >> On 23 May 2007, at 15:52, Eric Bodden wrote: >> >> > On 23/05/07, vamsidhar sharma <[email protected]> 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:[email protected], 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 -- Pascal Costanza, mailto:[email protected], http://p-cos.net Vrije Universiteit Brussel, Programming Technology Lab Pleinlaan 2, B-1050 Brussel, Belgium _______________________________________________ discuss mailing list - [email protected] To unsubscribe and change options, go to: http://aosd.net/mailman/listinfo/discuss_aosd.net Check out the AOSD.net Wiki: http://aosd.net/wiki