[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [aspectj-users] pointcut before thread exits
|
Thanks Andy!
That worked.
On Sat, 2010-11-06 at 18:20 -0700, Andy Clement wrote:
> Hi,
>
> In order to weave this:
>
> public final pointcut allThreadRun(Thread t) : execution(void run())
> && this(t) && !within(ProfilerAspect);
>
> AspectJ would need to be able to weave the Thread class - it cannot do
> that easily. You could extend Thread with a subtype I suppose, but
> instead what you can do is detect that your Runnable is about to
> finish and determine the Thread at that point:
>
> public final pointcut allThreadRun(Runnable r) : execution(void run())
> && this(r) && !within(ProfilerAspect);
>
> after(Runnable r) : allThreadRun(r) {
> Thread threadThatIsEnding = Thread.currentThread();
> threadStopHash.put(threadThatIsEnding,System.currentTimeMillis());
> }
>
> Andy
>
> On 6 November 2010 12:03, Ajendrex <ajendrex@xxxxxxxxx> wrote:
> >
> > Hello,
> >
> > I need to get the time in which every program's thread exits. The code I am
> > profiling looks like this:
> >
> > public class Phil implements Runnable {
> > Phil() { // constructor
> > new Thread(this, "Phil").start(); // make a new thread and start it
> > }
> >
> > public void run() { // must override run, this is what
> > for(int i=0; i<2;) { // is executed when the thread starts running
> > if(<TEST SOMETHING>)
> > i++;
> > Thread.sleep(500);
> > }
> > }
> >
> > Anyway, the idea is to have a profiler that would trace any code, so the
> > solution has to be general.
> >
> > my try has been:
> >
> > public final pointcut allThreadRun(Thread t) : (execution(void run()) &&
> > this(t) && !within(ProfilerAspect);
> >
> > after(Thread t) : allThreadRun(t) //!the advice doesn't match anything, the
> > following code never executes
> > {
> > threadStopHash.put(t,System.currentTimeMillis());
> > }
> >
> > Any info will be appreciated.
> >
> > Thanks!
> >
> > Hector.
> > --
> > View this message in context: http://aspectj.2085585.n4.nabble.com/pointcut-before-thread-exits-tp3030282p3030282.html
> > Sent from the AspectJ - users mailing list archive at Nabble.com.
> > _______________________________________________
> > 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