[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
RE: [aspectj-users] Can I declare an advice as synchronized
|
oops, right!
> -----Original Message-----
> From: aspectj-users-bounces@xxxxxxxxxxx
> [mailto:aspectj-users-bounces@xxxxxxxxxxx] On Behalf Of Ron Bodkin
> Sent: Thursday, July 20, 2006 12:20 PM
> To: aspectj-users@xxxxxxxxxxx
> Subject: RE: [aspectj-users] Can I declare an advice as synchronized
>
> Gregor: there's a small bug in your aspect: it will give rise
> to an infinite loop. That's why I wrote the synchronization
> in a different aspect. You could also use:
>
> aspect Fooing {
>
> static aspect Synchronization {
> // All the advice are synchronized
> Object around(Fooing ai): this(ai) && adviceexecution() {
> synchronized(ai) {
> return proceed(ai);
> }
> }
> }
>
> ... other advice ...
> }
> -----Original Message-----
> From: aspectj-users-bounces@xxxxxxxxxxx
> [mailto:aspectj-users-bounces@xxxxxxxxxxx] On Behalf Of
> Gregor Kiczales
> Sent: Thursday, July 20, 2006 12:05 PM
> To: aspectj-users@xxxxxxxxxxx
> Subject: RE: [aspectj-users] Can I declare an advice as synchronized
>
> Yes, I was just about to suggest that since he said all the
> advice in the aspect, it is just one more advice in the
> aspect. Its a synchronization strategy that crosscuts the
> advice in the aspect.
>
>
> aspect Fooing {
>
> // All the advice are synchronized
> Object around(Fooing ai): this(ai) && adviceexecution() {
> synchronized(ai) {
> return proceed(ai);
> }
>
> ... other advice ...
> }
>
> > -----Original Message-----
> > From: aspectj-users-bounces@xxxxxxxxxxx
> > [mailto:aspectj-users-bounces@xxxxxxxxxxx] On Behalf Of Ron Bodkin
> > Sent: Thursday, July 20, 2006 12:01 PM
> > To: aspectj-users@xxxxxxxxxxx
> > Subject: RE: [aspectj-users] Can I declare an advice as synchronized
> >
> > One other note: the original requester seemed to want to
> synchronize
> > the advice as a policy for some class of aspects.
> > If you do want to synchronize all the advice in a given
> aspect or all
> > of some set of aspects, it is crosscutting and you might
> use another
> > aspect to do it, e.g.,:
> >
> > package com.myco.concurrency;
> >
> > aspect AspectSynchronization {
> > Object around(Object current) : adviceexecution() &&
> > this(current) &&
> > within(com.myco.errorhandling..*) {
> > synchronized(current) {
> > return proceed(current);
> > }
> > }
> > }
> >
> > ________________________________________
> > From: aspectj-users-bounces@xxxxxxxxxxx
> > [mailto:aspectj-users-bounces@xxxxxxxxxxx] On Behalf Of Ramnivas
> > Laddad
> > Sent: Thursday, July 20, 2006 6:00 AM
> > To: aspectj-users@xxxxxxxxxxx
> > Subject: Re: [aspectj-users] Can I declare an advice as synchronized
> >
> > An alternative is to use synchronized(this) surrounding the code in
> > the advice.
> >
> > before() : myPC() {
> > synchronized(this) {
> > ... advice code ...
> > }
> > }
> >
> > -Ramnivas
> >
> > Matthew Webster wrote:
> >
> > The simple solution is to delegate the logic in you advice to a
> > synchronized instance method in the aspect. If you are
> using default
> > aspect instantiation it will be a singleton guaranteeing
> that only one
> > thread will execute the logic at a time. If you need to use
> > thisJoinPoint/thisJoinPointStaticPart
> > their values can be passes as arguments to the new method.
> >
> > Matthew Webster
> > AOSD Project
> > Java Technology Centre, MP146
> > IBM Hursley Park, Winchester, SO21 2JN, England
> > Telephone: +44 196 2816139 (external) 246139 (internal)
> > Email: Matthew Webster/UK/IBM @ IBMGB, matthew_webster@xxxxxxxxxx
> > http://w3.hursley.ibm.com/~websterm/
> >
> > "Lorenzo D'Ercole" <lorenzodercole@xxxxxxxxxx> Sent by:
> > aspectj-users-bounces@xxxxxxxxxxx
> > 20/07/2006 08:25
> > Please respond to
> > aspectj-users@xxxxxxxxxxx
> >
> > To
> > <aspectj-users@xxxxxxxxxxx>
> > cc
> >
> > Subject
> > Re: [aspectj-users] Can I declare an advice as synchronized
> >
> >
> >
> >
> >
> >
> >
> > Well, I tryed to use the synchronized keyword writing:
> > synchronized before ....
> > but I have a compile error which says:
> > illegal modifier on advice, only strictfp allowed For
> this reason
> > I'm looking for another solution if it exists. Do you have any idea?
> >
> > bye
> > lollo82
> >
> > ----- Original Message -----
> > From: "Eric Bodden" <eric.bodden@xxxxxxxxxxxxxx>
> > To: <aspectj-users@xxxxxxxxxxx>
> > Sent: Wednesday, July 19, 2006 10:09 PM
> > Subject: RE: [aspectj-users] Can I declare an advice as synchronized
> >
> >
> > Hi.
> >
> >
> > > I'm using aspect in an concurrent application and I'd
> like to be
> > > sure that the advices are synchronized. In fact I don't
> > want that more
> > > than one thread per time runs the advice code. Can I
> acchieve this
> > > result? I read that an aspect is a singleton on the aspectJ guide,
> > does
> > > it imply that only one thread per time is inside it?
> >
> > No, that is not implied (as it is not for any other regular
> > singleton).
> > But you can just use the synchronized keyword for your advice AFAIK.
> >
> > Eric
> >
> > --
> > Eric Bodden
> > Sable Research Group, McGill University Montreal, Canada
> >
> >
> >
> > _______________________________________________
> > aspectj-users mailing list
> > aspectj-users@xxxxxxxxxxx
> > https://dev.eclipse.org/mailman/listinfo/aspectj-users
> >
> >
> > _______________________________________________
> > aspectj-users mailing list
> > aspectj-users@xxxxxxxxxxx
> > https://dev.eclipse.org/mailman/listinfo/aspectj-users
> >
> >
> >
> > ________________________________________
> >
> > _______________________________________________
> > aspectj-users mailing list
> > aspectj-users@xxxxxxxxxxx
> > https://dev.eclipse.org/mailman/listinfo/aspectj-users
> >
> >
> > _______________________________________________
> > aspectj-users mailing list
> > aspectj-users@xxxxxxxxxxx
> > https://dev.eclipse.org/mailman/listinfo/aspectj-users
> >
>
>
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>