| 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 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 325 // in other threads) and eventually calls completeSweep(). | 325 // in other threads) and eventually calls completeSweep(). |
| 326 // 8) Each thread calls postSweep(). | 326 // 8) Each thread calls postSweep(). |
| 327 // | 327 // |
| 328 // Notes: | 328 // Notes: |
| 329 // - We stop the world between 1) and 5). | 329 // - We stop the world between 1) and 5). |
| 330 // - isInGC() returns true between 2) and 4). | 330 // - isInGC() returns true between 2) and 4). |
| 331 // - isSweepingInProgress() returns true between 6) and 7). | 331 // - isSweepingInProgress() returns true between 6) and 7). |
| 332 // - It is valid that the next GC is scheduled while some thread | 332 // - It is valid that the next GC is scheduled while some thread |
| 333 // has not yet completed its lazy sweeping of the last GC. | 333 // has not yet completed its lazy sweeping of the last GC. |
| 334 // In this case, the next GC just cancels the remaining lazy sweeping. | 334 // In this case, the next GC just cancels the remaining lazy sweeping. |
| 335 // Specifically, preGC() of the next GC calls makeConsistentForSweeping() | 335 // Specifically, preGC() of the next GC calls makeConsistentForGC() |
| 336 // and it marks all not-yet-swept objets as dead. | 336 // and it marks all not-yet-swept objets as dead. |
| 337 void makeConsistentForSweeping(); | 337 void makeConsistentForGC(); |
| 338 void preGC(); | 338 void preGC(); |
| 339 void postGC(GCType); | 339 void postGC(GCType); |
| 340 void preSweep(); | 340 void preSweep(); |
| 341 void completeSweep(); | 341 void completeSweep(); |
| 342 void postSweep(); | 342 void postSweep(); |
| 343 | 343 |
| 344 // Support for disallowing allocation. Mainly used for sanity | 344 // Support for disallowing allocation. Mainly used for sanity |
| 345 // checks asserts. | 345 // checks asserts. |
| 346 bool isAllocationAllowed() const { return !isAtSafePoint() && !m_noAllocatio
nCount; } | 346 bool isAllocationAllowed() const { return !isAtSafePoint() && !m_noAllocatio
nCount; } |
| 347 void enterNoAllocationScope() { m_noAllocationCount++; } | 347 void enterNoAllocationScope() { m_noAllocationCount++; } |
| (...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 735 }; | 735 }; |
| 736 | 736 |
| 737 template<> class ThreadStateFor<AnyThread> { | 737 template<> class ThreadStateFor<AnyThread> { |
| 738 public: | 738 public: |
| 739 static ThreadState* state() { return ThreadState::current(); } | 739 static ThreadState* state() { return ThreadState::current(); } |
| 740 }; | 740 }; |
| 741 | 741 |
| 742 } // namespace blink | 742 } // namespace blink |
| 743 | 743 |
| 744 #endif // ThreadState_h | 744 #endif // ThreadState_h |
| OLD | NEW |