1264 GenTimeOfLastGCClosure tolgc_cl(now);
1265 // iterate over generations getting the oldest
1266 // time that a generation was collected
1267 generation_iterate(&tolgc_cl, false);
1268
1269 // javaTimeNanos() is guaranteed to be monotonically non-decreasing
1270 // provided the underlying platform provides such a time source
1271 // (and it is bug free). So we still have to guard against getting
1272 // back a time later than 'now'.
1273 jlong retVal = now - tolgc_cl.time();
1274 if (retVal < 0) {
1275 NOT_PRODUCT(warning("time warp: " JLONG_FORMAT, retVal);)
1276 return 0;
1277 }
1278 return retVal;
1279 }
1280
1281 void GenCollectedHeap::stop() {
1282 #if INCLUDE_ALL_GCS
1283 if (UseConcMarkSweepGC) {
1284 ConcurrentMarkSweepThread::stop();
1285 }
1286 #endif
1287 }
|
1264 GenTimeOfLastGCClosure tolgc_cl(now);
1265 // iterate over generations getting the oldest
1266 // time that a generation was collected
1267 generation_iterate(&tolgc_cl, false);
1268
1269 // javaTimeNanos() is guaranteed to be monotonically non-decreasing
1270 // provided the underlying platform provides such a time source
1271 // (and it is bug free). So we still have to guard against getting
1272 // back a time later than 'now'.
1273 jlong retVal = now - tolgc_cl.time();
1274 if (retVal < 0) {
1275 NOT_PRODUCT(warning("time warp: " JLONG_FORMAT, retVal);)
1276 return 0;
1277 }
1278 return retVal;
1279 }
1280
1281 void GenCollectedHeap::stop() {
1282 #if INCLUDE_ALL_GCS
1283 if (UseConcMarkSweepGC) {
1284 ConcurrentMarkSweepThread::stop_all();
1285 }
1286 #endif
1287 }
|