if (DEBUG) System.err.println("starting thread"); fgTypeCacherThread= new TypeCacher(fgSizeHint, INITIAL_DELAY, null); fgTypeCacherThread.start(); fgDeltaListener= new TypeCacheDeltaListener(); JavaCore.addElementChangedListener(fgDeltaListener);
synchronized(fgLock) { if (fgTypeCacherThread != null) { if (fgTerminated) { fgTypeCacherThread.abort(); } else { fgBackground= true; if (DEBUG) System.err.println("inititialize: cache is being uptodated"); } } else { if (fgTerminated) { if (DEBUG) System.err.println("inititialize: already terminated"); } else { fgBackground= true; if (fgTypeCache != null) { if (DEBUG) System.err.println("inititialize: cache is uptodate"); } else { fgTypeCacherThread= new TypeCacher(fgSizeHint, INITIAL_DELAY, null); fgTypeCacherThread.start(); } } } }
	public static void initialize() {		if (DEBUG) System.err.println("initialize");		Display d= Display.getDefault();		if (d != null)			d.asyncExec(				new Runnable() {					public void run() {						if (DEBUG) System.err.println("starting thread");						fgTypeCacherThread= new TypeCacher(fgSizeHint, INITIAL_DELAY, null);						fgTypeCacherThread.start();						fgDeltaListener= new TypeCacheDeltaListener();						JavaCore.addElementChangedListener(fgDeltaListener);					}				}			);	}