private void buildDiffs() { if (buildAverageDiffsLock.TryEnterWriteLock(-1)) { try { averageDiffs.clear(); allRecommendableItemIDs.clear(); //FileLineIterator iterator = new FileLineIterator(dataFile, false); //String firstLine = iterator.peek(); //while (string.IsNullOrEmpty(firstLine) || firstLine[0] == COMMENT_CHAR) //{ // iterator.next(); // firstLine = iterator.peek(); //} StreamReader reader = new StreamReader(dataFile); string firstLine = reader.ReadLine(); while ((firstLine == string.Empty) || (firstLine[0] == COMMENT_CHAR)) { firstLine = reader.ReadLine(); } long averageCount = 0L; while (!reader.EndOfStream) { averageCount = processLine(reader.ReadLine(), averageCount); } reader.Close(); pruneInconsequentialDiffs(); updateAllRecommendableItems(); } catch (IOException ioe) { log.warn("Exception while reloading", ioe); } finally { buildAverageDiffsLock.ExitWriteLock(); } } }
private void buildAverageDiffs() { log.info("Building average diffs..."); try { buildAverageDiffsLock.EnterWriteLock(); averageDiffs.clear(); long averageCount = 0L; var it = dataModel.getUserIDs(); while (it.MoveNext()) { averageCount = processOneUser(averageCount, it.Current); } pruneInconsequentialDiffs(); updateAllRecommendableItems(); } finally { buildAverageDiffsLock.ExitWriteLock(); } }