Changeset 190151 in webkit for trunk/Source/JavaScriptCore/heap/Heap.h
- Timestamp:
- Sep 22, 2015, 6:35:49 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/heap/Heap.h
r190113 r190151 2 2 * Copyright (C) 1999-2000 Harri Porten ([email protected]) 3 3 * Copyright (C) 2001 Peter Kelly ([email protected]) 4 * Copyright (C) 2003-2009, 2013-201 4Apple Inc. All rights reserved.4 * Copyright (C) 2003-2009, 2013-2015 Apple Inc. All rights reserved. 5 5 * 6 6 * This library is free software; you can redistribute it and/or … … 27 27 #include "CopyVisitor.h" 28 28 #include "GCIncomingRefCountedSet.h" 29 #include "GCThread SharedData.h"29 #include "GCThread.h" 30 30 #include "HandleSet.h" 31 31 #include "HandleStack.h" 32 32 #include "HeapOperation.h" 33 33 #include "JITStubRoutineSet.h" 34 #include "ListableHandler.h" 34 35 #include "MarkedAllocator.h" 35 36 #include "MarkedBlock.h" … … 39 40 #include "SlotVisitor.h" 40 41 #include "StructureIDTable.h" 42 #include "UnconditionalFinalizer.h" 41 43 #include "WeakHandleOwner.h" 44 #include "WeakReferenceHarvester.h" 42 45 #include "WriteBarrierBuffer.h" 43 46 #include "WriteBarrierSupport.h" … … 86 89 friend class JIT; 87 90 friend class DFG::SpeculativeJIT; 88 friend class GCThreadSharedData;89 91 static Heap* heap(const JSValue); // 0 for immediate values 90 92 static Heap* heap(const JSCell*); … … 244 246 friend class GCAwareJITStubRoutine; 245 247 friend class GCLogging; 248 friend class GCThread; 246 249 friend class HandleSet; 247 250 friend class HeapVerifier; … … 340 343 void decrementDeferralDepthAndGCIfNeeded(); 341 344 345 size_t threadVisitCount(); 346 size_t threadBytesVisited(); 347 size_t threadBytesCopied(); 348 size_t threadDupStrings(); 349 350 void getNextBlocksToCopy(size_t&, size_t&); 351 void startNextPhase(GCPhase); 352 void endCurrentPhase(); 353 342 354 const HeapType m_heapType; 343 355 const size_t m_ramSize; … … 372 384 MachineThreads m_machineThreads; 373 385 374 GCThreadSharedData m_sharedData;375 386 SlotVisitor m_slotVisitor; 376 387 CopyVisitor m_copyVisitor; … … 410 421 411 422 HashMap<void*, std::function<void()>> m_weakGCMaps; 423 424 bool m_shouldHashCons { false }; 425 426 Vector<GCThread*> m_gcThreads; 427 428 Lock m_markingMutex; 429 Condition m_markingConditionVariable; 430 MarkStackArray m_sharedMarkStack; 431 unsigned m_numberOfActiveParallelMarkers { 0 }; 432 bool m_parallelMarkersShouldExit { false }; 433 434 Lock m_opaqueRootsMutex; 435 HashSet<void*> m_opaqueRoots; 436 437 Lock m_copyLock; 438 Vector<CopiedBlock*> m_blocksToCopy; 439 size_t m_copyIndex { 0 }; 440 static const size_t s_blockFragmentLength = 32; 441 442 Lock m_phaseMutex; 443 Condition m_phaseConditionVariable; 444 Condition m_activityConditionVariable; 445 unsigned m_numberOfActiveGCThreads { 0 }; 446 bool m_gcThreadsShouldWait { false }; 447 GCPhase m_currentPhase { NoPhase }; 448 449 ListableHandler<WeakReferenceHarvester>::List m_weakReferenceHarvesters; 450 ListableHandler<UnconditionalFinalizer>::List m_unconditionalFinalizers; 412 451 }; 413 452
Note:
See TracChangeset
for help on using the changeset viewer.