private synchronized boolean readCoreStats()

in metrics/src/main/java/com/facebook/battery/metrics/cpu/CpuFrequencyMetricsCollector.java [75:98]


  private synchronized boolean readCoreStats(SparseIntArray array, ProcFileReader reader) {
    array.clear();

    // A failure is mostly expected because files become inaccessible in case of
    // the core being taken offline.
    if (!reader.isValid()) {
      return false;
    }

    try {
      while (reader.hasNext()) {
        long frequency = reader.readNumber();
        reader.skipSpaces();
        long timeInState = reader.readNumber() / CpuMetricsCollector.getClockTicksPerSecond();
        reader.skipLine();

        array.put((int) frequency, (int) timeInState);
      }
    } catch (ProcFileReader.ParseException pe) {
      return false;
    }

    return true;
  }