code: public static void notifyIdleSession(IoSession session, long currentTime) {
          notifyIdleSession0(
                  session, currentTime,
                  session.getConfig().getIdleTimeInMillis(IdleStatus.BOTH_IDLE),
                  IdleStatus.BOTH_IDLE, Math.max(
                      session.getLastIoTime(),
                      session.getLastIdleTime(IdleStatus.BOTH_IDLE)));
  
          notifyIdleSession0(
                  session, currentTime,
                  session.getConfig().getIdleTimeInMillis(IdleStatus.READER_IDLE),
                  IdleStatus.READER_IDLE, Math.max(
                      session.getLastReadTime(),
                      session.getLastIdleTime(IdleStatus.READER_IDLE)));
  
          notifyIdleSession0(
                  session, currentTime,
                  session.getConfig().getIdleTimeInMillis(IdleStatus.WRITER_IDLE),
                  IdleStatus.WRITER_IDLE, Math.max(
                      session.getLastWriteTime(),
                      session.getLastIdleTime(IdleStatus.WRITER_IDLE)));
  
          notifyWriteTimeout(session, currentTime);
      }
docs: Fires a {@link IoEventType#SESSION_IDLE} event if applicable for the
  specified {@code session}.
  
  @param currentTime the current time (i.e. {@link System#currentTimeMillis()})