cvmfs/cvmfs.cc
static void *MainRemountTrigger(void *data) {
  char c;
  LogCvmfs(kLogCvmfs, kLogDebug, "starting remount trigger");
  while (true) {
    ReadPipe(pipe_remount_trigger_[0], &c, 1);
    if (c == 'Q')
      break;

    // We don't need to call this if we are already draining the caches
    if (!atomic_read32(&drainout_mode_)) {
      LogCvmfs(kLogCvmfs, kLogDebug, "trigger remount of idle mount point");
      RemountCheck();
    }
  }
  LogCvmfs(kLogCvmfs, kLogDebug, "stopping remount trigger");
  return NULL;
}
// TODO(jblomer): the remount functions need to move into a separate entity
/**
 * Gets triggered by the alarm timer to start `RemountCheck()`.  This can't
 * be called from the alarm timer because of missing signal safety.
 */
the remount functions need to move into a separate entity
Gets triggered by the alarm timer to start `RemountCheck()`.  This can't
be called from the alarm timer because of missing signal safety.
the remount functions need to move into a separate entity Gets triggered by the alarm timer to start ` RemountCheck () ` . This can ' t be called from the alarm timer because of missing signal safety .
static void *MainRemountTrigger(void *data) {
  char c;
  LogCvmfs(kLogCvmfs, kLogDebug, "starting remount trigger");
  while (true) {
    ReadPipe(pipe_remount_trigger_[0], &c, 1);
    if (c == 'Q')
      break;
    if (!atomic_read32(&drainout_mode_)) {
      LogCvmfs(kLogCvmfs, kLogDebug, "trigger remount of idle mount point");
      RemountCheck();
    }
  }
  LogCvmfs(kLogCvmfs, kLogDebug, "stopping remount trigger");
  return NULL;
}
static void * MainRemountTrigger ( void * data ) { char c ; LogCvmfs ( kLogCvmfs , kLogDebug , " " ) ; while ( true ) { ReadPipe ( pipe_remount_trigger_ [ 0 ] , & c , 1 ) ; if ( c == ' ' ) break ; if ( ! atomic_read32 ( & drainout_mode_ ) ) { LogCvmfs ( kLogCvmfs , kLogDebug , " " ) ; RemountCheck ( ) ; } } LogCvmfs ( kLogCvmfs , kLogDebug , " " ) ; return NULL ; }
TODO(jblomer): the remount functions need to move into a separate entity
 Gets triggered by the alarm timer to start `RemountCheck()`.
TODO ( jblomer ) : the remount functions need to move into a separate entity Gets triggered by the alarm timer to start ` RemountCheck () ` .
// We don't need to call this if we are already draining the caches