1 package org.sourceforge.jemm.client.events;
2
3
4
5
6
7
8
9
10 public class LockTracerImpl implements LockTracer {
11 LockContext context;
12 LockContextListener listener;
13
14 public LockTracerImpl(LockContextListener listener) {
15 context = new LockContext();
16 this.listener = listener;
17 }
18
19 public void beginLock(Object source, Object lock) {
20 context.add();
21 int count = context.count();
22
23 listener.acquire(new LockEvent(source,lock,count));
24 }
25
26 @Override
27 public void endLock(Object source, Object lock) {
28 context.remove();
29 int count = context.count();
30 listener.release(new LockEvent(source,lock,count));
31 }
32
33 public boolean currentTreadHasAnyLock() {
34 return context.has();
35 }
36 }