/** Must be synchronized (lockSetInfos). */ private void stopTrack(IInterpreterManager manager, IPathWatch pathWatch) { List<InfoTracker> currTrackers = managerToPathsTracker.remove(manager); if (currTrackers != null) { for (InfoTracker infoTracker : currTrackers) { for (File f : infoTracker.filepathsTracked) { pathWatch.stopTrack(f, infoTracker); } } } }
/** Stops the synchronization. */ public void stop() { job.cancel(); IInterpreterManager[] managers = PydevPlugin.getAllInterpreterManagers(); synchronized (lockSetInfos) { for (IInterpreterManager iInterpreterManager : managers) { if (iInterpreterManager != null) { stopTrack(iInterpreterManager, pathWatch); } } } pathWatch.dispose(); }
public void afterSetInfos( IInterpreterManager manager, IInterpreterInfo[] interpreterInfos, IInfoTrackerListener listener) { synchronized (lockSetInfos) { stopTrack(manager, pathWatch); List<InfoTracker> currTrackers = new ArrayList<>(); managerToPathsTracker.put(manager, currTrackers); for (IInterpreterInfo info : interpreterInfos) { List<String> pythonPath = info.getPythonPath(); InfoTracker tracker = new InfoTracker(manager, info, listener); for (String string : pythonPath) { File f = new File(string); if (SynchSystemModulesManager.DEBUG) { System.out.println("Tracking file: " + f + " for: " + info.getNameForUI()); } tracker.registerTracking(f); pathWatch.track(f, tracker); currTrackers.add(tracker); } } } }
public SyncSystemModulesManagerScheduler() { pathWatch.setDirectoryFileFilter(filter, dirFilter); }