@Override
  protected void checkListeners() {
    checkLocalListeners();
    synchronized (listeners) {
      if (listeners.size() == 0) {
        return;
      }
      long timeStamp = System.currentTimeMillis();
      for (Map.Entry<InternalDistributedMember, List<RemoteStatListenerImpl>> internalDistributedMemberListEntry : recipientToListeners
          .entrySet()) {
        if (stopRequested()) {
          return;
        }
        Map.Entry<InternalDistributedMember, List<RemoteStatListenerImpl>> entry =
            internalDistributedMemberListEntry;
        List<RemoteStatListenerImpl> remoteStatListenerList = entry.getValue();
        if (remoteStatListenerList.size() > 0) {
          InternalDistributedMember recipient = entry.getKey();
          StatListenerMessage statListenerMessage =
              StatListenerMessage.create(timeStamp, remoteStatListenerList.size());
          statListenerMessage.setRecipient(recipient);
          for (RemoteStatListenerImpl statListener : remoteStatListenerList) {
            if (getStatisticsManager().statisticsExists(statListener.getStatId())) {
              statListener.checkForChange(statListenerMessage);
            } else {
              // its stale; indicate this with a negative listener id
              // fix for bug 29405
              statListenerMessage.addChange(-statListener.getListenerId(), 0);
            }
          }
          distributionManager.putOutgoing(statListenerMessage);
        }
      }
    }
  }
Returns the <code>ProcessStats</code> for this Java VM. Note that <code>null</code> will be
returned if operating statistics are disabled.

@since GemFire 3.5
geode-core/src/main/java/org/apache/geode/internal/statistics/GemFireStatSampler.java