Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 219 } | 219 } |
| 220 ASSERT(checkThread()); | 220 ASSERT(checkThread()); |
| 221 | 221 |
| 222 // Finish sweeping. | 222 // Finish sweeping. |
| 223 completeSweep(); | 223 completeSweep(); |
| 224 | 224 |
| 225 // From here on ignore all conservatively discovered | 225 // From here on ignore all conservatively discovered |
| 226 // pointers into the heap owned by this thread. | 226 // pointers into the heap owned by this thread. |
| 227 m_isTerminating = true; | 227 m_isTerminating = true; |
| 228 | 228 |
| 229 releaseStaticPersistentNodes(); | |
|
xidachen
2016/05/07 17:07:49
sof@, haraken@: without this line, the layout test
sof
2016/05/07 17:11:23
Really, isn't the releaseStaticPersistentNodes() c
xidachen
2016/05/07 17:28:30
I just tried something, without this line here, an
sof
2016/05/07 17:33:32
Not a good idea, as you will be perpetually stuck
| |
| 230 | |
| 229 // Set the terminate flag on all heap pages of this thread. This is used to | 231 // Set the terminate flag on all heap pages of this thread. This is used to |
| 230 // ensure we don't trace pages on other threads that are not part of the | 232 // ensure we don't trace pages on other threads that are not part of the |
| 231 // thread local GC. | 233 // thread local GC. |
| 232 prepareForThreadStateTermination(); | 234 prepareForThreadStateTermination(); |
| 233 | 235 |
| 234 ProcessHeap::crossThreadPersistentRegion().prepareForThreadStateTermination( this); | 236 ProcessHeap::crossThreadPersistentRegion().prepareForThreadStateTermination( this); |
| 235 | 237 |
| 236 // Do thread local GC's as long as the count of thread local Persistents | 238 // Do thread local GC's as long as the count of thread local Persistents |
| 237 // changes and is above zero. | 239 // changes and is above zero. |
| 238 int oldCount = -1; | 240 int oldCount = -1; |
| (...skipping 1282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1521 threadDump->addScalar("dead_count", "objects", totalDeadCount); | 1523 threadDump->addScalar("dead_count", "objects", totalDeadCount); |
| 1522 threadDump->addScalar("live_size", "bytes", totalLiveSize); | 1524 threadDump->addScalar("live_size", "bytes", totalLiveSize); |
| 1523 threadDump->addScalar("dead_size", "bytes", totalDeadSize); | 1525 threadDump->addScalar("dead_size", "bytes", totalDeadSize); |
| 1524 | 1526 |
| 1525 WebMemoryAllocatorDump* heapsDump = BlinkGCMemoryDumpProvider::instance()->c reateMemoryAllocatorDumpForCurrentGC(heapsDumpName); | 1527 WebMemoryAllocatorDump* heapsDump = BlinkGCMemoryDumpProvider::instance()->c reateMemoryAllocatorDumpForCurrentGC(heapsDumpName); |
| 1526 WebMemoryAllocatorDump* classesDump = BlinkGCMemoryDumpProvider::instance()- >createMemoryAllocatorDumpForCurrentGC(classesDumpName); | 1528 WebMemoryAllocatorDump* classesDump = BlinkGCMemoryDumpProvider::instance()- >createMemoryAllocatorDumpForCurrentGC(classesDumpName); |
| 1527 BlinkGCMemoryDumpProvider::instance()->currentProcessMemoryDump()->addOwners hipEdge(classesDump->guid(), heapsDump->guid()); | 1529 BlinkGCMemoryDumpProvider::instance()->currentProcessMemoryDump()->addOwners hipEdge(classesDump->guid(), heapsDump->guid()); |
| 1528 } | 1530 } |
| 1529 | 1531 |
| 1530 } // namespace blink | 1532 } // namespace blink |
| OLD | NEW |