~ludwig.schmidt/jhelioviewer/jhv-locks

« back to all changes in this revision

Viewing changes to viewmodel/src/org/helioviewer/viewmodel/view/AbstractLayeredView.java

  • Committer: Ludwig
  • Date: 2010-03-26 22:00:20 UTC
  • Revision ID: ludwig@helio-20100326220020-yop3yvy8hg7oyyt3
replacing lock in LayeredViews with synchronized blocks

Show diffs side-by-side

added added

removed removed

Lines of Context:
3
3
import java.util.Collection;
4
4
import java.util.HashMap;
5
5
import java.util.LinkedList;
6
 
import java.util.concurrent.locks.ReentrantLock;
7
6
 
8
7
import org.helioviewer.base.math.RectangleDouble;
9
8
import org.helioviewer.base.math.Vector2dInt;
46
45
    // /////////////////////////////////////////////////////////////////////////
47
46
 
48
47
    protected LinkedList<View> layers = new LinkedList<View>();
49
 
    protected ReentrantLock layerLock = new ReentrantLock();
50
48
    protected HashMap<View, Layer> viewLookup = new HashMap<View, Layer>();
51
49
    protected Viewport viewport;
52
50
    protected Region region;
156
154
 
157
155
        ChangeEvent changeEvent = new ChangeEvent(new LayerChangedReason(this, LayerChangeType.LAYER_ADDED, newLayer));
158
156
 
159
 
        layerLock.lock();
160
 
 
161
 
        try {
 
157
       synchronized(this) {
162
158
            layers.add(newIndex, newLayer);
163
159
            newLayer.addViewListener(this);
164
160
 
167
163
            recalculateMetaData();
168
164
            region = metaData.getPhysicalRegion();
169
165
            recalculateRegionsAndViewports(new ChangeEvent());
170
 
        } finally {
171
 
            layerLock.unlock();
172
166
        }
173
167
 
174
168
        redrawBuffer(changeEvent);
210
204
        view.removeViewListener(this);
211
205
        ChangeEvent event = new ChangeEvent(new LayerChangedReason(this, LayerChangeType.LAYER_REMOVED, view));
212
206
 
213
 
        layerLock.lock();
214
 
 
215
 
        try {
 
207
        synchronized(this) {
216
208
            layers.remove(view);
217
209
            viewLookup.remove(view);
218
210
 
223
215
 
224
216
            recalculateRegionsAndViewports(event);
225
217
 
226
 
        } finally {
227
 
            layerLock.unlock();
228
218
        }
229
219
 
230
220
        redrawBuffer(event);