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 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 271 // collect garbage at this point. | 271 // collect garbage at this point. |
| 272 bool shouldGC(); | 272 bool shouldGC(); |
| 273 bool shouldForceConservativeGC(); | 273 bool shouldForceConservativeGC(); |
| 274 | 274 |
| 275 // If gcRequested returns true when a thread returns to its event | 275 // If gcRequested returns true when a thread returns to its event |
| 276 // loop the thread will initiate a garbage collection. | 276 // loop the thread will initiate a garbage collection. |
| 277 bool gcRequested(); | 277 bool gcRequested(); |
| 278 void setGCRequested(); | 278 void setGCRequested(); |
| 279 void clearGCRequested(); | 279 void clearGCRequested(); |
| 280 | 280 |
| 281 void performPendingGC(StackState); | |
|
wibling-chromium
2014/04/01 13:26:09
NIT: Could be made private.
Mads Ager (chromium)
2014/04/01 13:45:38
Done.
| |
| 282 | |
| 283 // Was the last GC forced for testing? This is set when garbage collection | |
| 284 // is forced for testing and there are pointers on the stack. It remains | |
| 285 // set until a garbage collection is triggered with no pointers on the stack . | |
| 286 // This is used for layout tests that trigger GCs and check if objects are | |
| 287 // dead at a given point in time. That only reliably works when we get | |
| 288 // precise GCs with no conservative stack scanning. | |
| 289 void setForcedForTesting(bool); | |
| 290 bool forcedForTesting(); | |
|
wibling-chromium
2014/04/01 13:26:09
NIT: Could be made private.
Mads Ager (chromium)
2014/04/01 13:45:38
This one is called from Heap. We could make heap a
| |
| 291 | |
| 281 bool sweepRequested(); | 292 bool sweepRequested(); |
| 282 void setSweepRequested(); | 293 void setSweepRequested(); |
| 283 void clearSweepRequested(); | 294 void clearSweepRequested(); |
| 284 void performPendingSweep(); | 295 void performPendingSweep(); |
| 285 | 296 |
| 286 // Support for disallowing allocation. Mainly used for sanity | 297 // Support for disallowing allocation. Mainly used for sanity |
| 287 // checks asserts. | 298 // checks asserts. |
| 288 bool isAllocationAllowed() const { return !isAtSafePoint() && !m_noAllocatio nCount; } | 299 bool isAllocationAllowed() const { return !isAtSafePoint() && !m_noAllocatio nCount; } |
| 289 void enterNoAllocationScope() { m_noAllocationCount++; } | 300 void enterNoAllocationScope() { m_noAllocationCount++; } |
| 290 void leaveNoAllocationScope() { m_noAllocationCount--; } | 301 void leaveNoAllocationScope() { m_noAllocationCount--; } |
| (...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 533 ThreadIdentifier m_thread; | 544 ThreadIdentifier m_thread; |
| 534 OwnPtr<PersistentNode> m_persistents; | 545 OwnPtr<PersistentNode> m_persistents; |
| 535 StackState m_stackState; | 546 StackState m_stackState; |
| 536 intptr_t* m_startOfStack; | 547 intptr_t* m_startOfStack; |
| 537 intptr_t* m_endOfStack; | 548 intptr_t* m_endOfStack; |
| 538 void* m_safePointScopeMarker; | 549 void* m_safePointScopeMarker; |
| 539 Vector<Address> m_safePointStackCopy; | 550 Vector<Address> m_safePointStackCopy; |
| 540 bool m_atSafePoint; | 551 bool m_atSafePoint; |
| 541 Vector<Interruptor*> m_interruptors; | 552 Vector<Interruptor*> m_interruptors; |
| 542 bool m_gcRequested; | 553 bool m_gcRequested; |
| 554 bool m_forcedForTesting; | |
| 543 volatile int m_sweepRequested; | 555 volatile int m_sweepRequested; |
| 544 bool m_sweepInProgress; | 556 bool m_sweepInProgress; |
| 545 size_t m_noAllocationCount; | 557 size_t m_noAllocationCount; |
| 546 bool m_inGC; | 558 bool m_inGC; |
| 547 BaseHeap* m_heaps[NumberOfHeaps]; | 559 BaseHeap* m_heaps[NumberOfHeaps]; |
| 548 OwnPtr<HeapContainsCache> m_heapContainsCache; | 560 OwnPtr<HeapContainsCache> m_heapContainsCache; |
| 549 HeapStats m_stats; | 561 HeapStats m_stats; |
| 550 HeapStats m_statsAfterLastGC; | 562 HeapStats m_statsAfterLastGC; |
| 551 | 563 |
| 552 Vector<OwnPtr<CleanupTask> > m_cleanupTasks; | 564 Vector<OwnPtr<CleanupTask> > m_cleanupTasks; |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 568 }; | 580 }; |
| 569 | 581 |
| 570 template<> class ThreadStateFor<AnyThread> { | 582 template<> class ThreadStateFor<AnyThread> { |
| 571 public: | 583 public: |
| 572 static ThreadState* state() { return ThreadState::current(); } | 584 static ThreadState* state() { return ThreadState::current(); } |
| 573 }; | 585 }; |
| 574 | 586 |
| 575 } | 587 } |
| 576 | 588 |
| 577 #endif // ThreadState_h | 589 #endif // ThreadState_h |
| OLD | NEW |