hphp/runtime/base/unit-cache.cpp
/*
 * When a unit is removed from the unit cache, we wait for a Treadmill round
 * before reclaiming it using this routine.
 *
 * If we have or are in the process of a collecting an hhprof dump then we need
 * to keep these units around even longer, as they might be needed for symbol
 * resolution when that dump is collected by pprof.  In this case, we just pass
 * ownership to the ProfileControler module.
 */
When a unit is removed from the unit cache, we wait for a Treadmill round
before reclaiming it using this routine.

If we have or are in the process of a collecting an hhprof dump then we need
to keep these units around even longer, as they might be needed for symbol
resolution when that dump is collected by pprof.  In this case, we just pass
ownership to the ProfileControler module.
When a unit is removed from the unit cache we wait for a Treadmill round before reclaiming it using this routine . If we have or are in the process of a collecting an hhprof dump then we need to keep these units around even longer as they might be needed for symbol resolution when that dump is collected by pprof . In this case we just pass ownership to the ProfileControler module .
void reclaimUnit(const Unit* unit) {
  if (memory_profiling && RuntimeOption::HHProfServerEnabled &&
      ProfileController::isTracking()) {
    ProfileController::enqueueOrphanedUnit(unit);
    return;
  }
  delete unit;
}
void reclaimUnit ( const Unit * unit ) { if ( memory_profiling && RuntimeOption :: HHProfServerEnabled && ProfileController :: isTracking ( ) ) { ProfileController :: enqueueOrphanedUnit ( unit ) ; return ; } delete unit ; }
When a unit is removed from the unit cache, we wait for a Treadmill round
 before reclaiming it using this routine.
When a unit is removed from the unit cache we wait for a Treadmill round before reclaiming it using this routine .