Issue #1363 The intance of PythonGuidanceJob can now be created on any thread.

Change-Id: I4f24c904007df455aee557cd80cac8836da3d517

Former-commit-id: 5fde71e598 [formerly 1640c177e60e8e3ba522568a662bedda0cd7546e]
Former-commit-id: e7d453bd77
This commit is contained in:
Roger Ferrel 2012-11-28 10:01:56 -06:00
parent 813498822c
commit 48c5724c06
2 changed files with 13 additions and 18 deletions

View file

@ -29,9 +29,6 @@ import jep.JepException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.ui.PlatformUI;
import com.raytheon.uf.common.localization.IPathManager;
import com.raytheon.uf.common.localization.PathManagerFactory;
@ -62,6 +59,9 @@ import com.raytheon.viz.aviation.monitor.AvnPyUtil;
* Apr 14, 2011 8065 rferrel Implemented enqueue to place
* Alerts at the front of the queue
* and work with data caching.
* Nov 28, 2012 1363 rferrel No longer add a dispose listner so the
* creation of instance can be done on
* any thread.
*
* </pre>
*
@ -107,7 +107,6 @@ public class PythonGuidanceJob extends AbstractQueueJob<GuidanceRequest> {
super(name);
suspendMonitor = new Object();
suspendJob = false;
setupDispose();
}
/**
@ -147,6 +146,13 @@ public class PythonGuidanceJob extends AbstractQueueJob<GuidanceRequest> {
return instance;
}
public final static synchronized void dispose() {
if (instance != null) {
instance.shutdown();
instance = null;
}
}
/**
* Shutdowns the running instance and cleans up any threads.
*/
@ -197,20 +203,6 @@ public class PythonGuidanceJob extends AbstractQueueJob<GuidanceRequest> {
}
}
/**
* Set up dispose listener to clean up when Cave goes away.
*/
private void setupDispose() {
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell()
.addDisposeListener(new DisposeListener() {
@Override
public void widgetDisposed(DisposeEvent e) {
shutdown();
}
});
}
/*
* (non-Javadoc)
*

View file

@ -59,6 +59,7 @@ import com.raytheon.viz.aviation.climatology.WeatherPlotDialog;
import com.raytheon.viz.aviation.editor.ITafSettable;
import com.raytheon.viz.aviation.editor.TafViewerEditorDlg;
import com.raytheon.viz.aviation.editor.TafViewerEditorDlg.TafSettings;
import com.raytheon.viz.aviation.guidance.PythonGuidanceJob;
import com.raytheon.viz.aviation.guidance.ViewerTab;
import com.raytheon.viz.aviation.model.ForecastModel;
import com.raytheon.viz.aviation.monitor.CcfpMonitorObserver;
@ -141,6 +142,7 @@ import com.raytheon.viz.ui.dialogs.ICloseCallback;
* 10/11/2012 1229 rferrel Changes for non-blocking TafViewerEditorDlg.
* 10/15/2012 1229 rferrel Changes for non-blocking HelpUsageDlg.
* 11/26/2012 1298 rferrel Non-blocking dialog cleanup.
* 11/28/2012 1363 rferrel Dispose of PythonGuidanceJob when closing.
* </pre>
*
* @author grichard
@ -895,6 +897,7 @@ public class TafMonitorDlg extends CaveSWTDialog {
tveDlg.disposeDialog();
PythonCacheGuidanceJob.dispose();
PythonGuidanceJob.dispose();
return close();
}