1
2
3
4
5
6
7
8
9
10
11 package org.mule.util.concurrent;
12
13 import edu.emory.mathcs.backport.java.util.concurrent.Executor;
14
15
16 public abstract class AbstractSynchronizedVariable implements Executor
17 {
18
19 protected final Object lock;
20
21 public AbstractSynchronizedVariable()
22 {
23 super();
24 lock = this;
25 }
26
27 public AbstractSynchronizedVariable(Object lock)
28 {
29 super();
30 this.lock = lock;
31 }
32
33 public Object getLock()
34 {
35 return lock;
36 }
37
38 public void execute(Runnable command)
39 {
40 synchronized (lock)
41 {
42 command.run();
43 }
44 }
45
46 }