Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] A question about cflow across threads

I think it is not a bug. cflow is intended to work in a single thread.

Regards,
Michael Nascimento Santos
https://genesis.dev.java.net/


On Wed, 9 Mar 2005 12:58:39 -0500 (EST), Pengcheng Wu <wupc@xxxxxxxxxxx> wrote:
> Dear all,
> 
> I have a question about cflow pointcut across threads. Assume I have a
> program like this:
> 
> class A {
>   public static void main(String[] args) {
>     A a = new A();
>     a.foo();
>   }
>   public void foo() {
>     Thread t = new MyThread(this);
>     t.start();
>   }
>   public void bar() { test();}
>   public void test() {}
> }
> 
> class MyThread extends Thread {
>   A a;
>   public MyThread(A a) {this.a = a;}
>   public void run() {
>     a.bar();
>   }
> }
> 
> The only thing interesting here is that a thread is started in the body of
> method foo().
> 
> If I have an aspect, say:
> 
> aspect B {
>  pointcut p(): call(* *.bar()) && cflow(call(* *.foo()));
> }
> 
> Will p() capture the call to bar() during the execution? If it were single
> thread program, it will capture; but as a multi-thread program as shown
> above, it doesn't. I am trying to figure out why it is so or it is just a
> bug.
> 
> Thanks a lot!
> 
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>  Pengcheng Wu,  PhD Student
>  College of Computer and Information Science
>  Northeastern University
>  Boston, MA 02115, USA
> 
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> http://dev.eclipse.org/mailman/listinfo/aspectj-users
>


Back to the top