diff options
author | Hiroshi Yamauchi <yamauchi@google.com> | 2015-01-09 14:03:35 -0800 |
---|---|---|
committer | Hiroshi Yamauchi <yamauchi@google.com> | 2015-01-23 14:07:32 -0800 |
commit | 2cd334ae2d4287216523882f0d298cf3901b7ab1 (patch) | |
tree | b72d3d07e5a04151caca96cae345075b6e4452b0 /runtime/runtime.h | |
parent | 604e2828896fbb8663897d1e75112da7305ead4c (diff) | |
download | art-2cd334ae2d4287216523882f0d298cf3901b7ab1.tar.gz art-2cd334ae2d4287216523882f0d298cf3901b7ab1.tar.bz2 art-2cd334ae2d4287216523882f0d298cf3901b7ab1.zip |
More of the concurrent copying collector.
Bug: 12687968
Change-Id: I62f70274d47df6d6cab714df95c518b750ce3105
Diffstat (limited to 'runtime/runtime.h')
-rw-r--r-- | runtime/runtime.h | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/runtime/runtime.h b/runtime/runtime.h index d58fe3c2cb..c5a8739904 100644 --- a/runtime/runtime.h +++ b/runtime/runtime.h @@ -43,6 +43,9 @@ namespace art { namespace gc { class Heap; + namespace collector { + class GarbageCollector; + } // namespace collector } // namespace gc namespace mirror { class ArtMethod; @@ -58,6 +61,7 @@ namespace verifier { class MethodVerifier; } // namespace verifier class ClassLinker; +class Closure; class DexFile; class InternTable; class JavaVMExt; @@ -270,8 +274,9 @@ class Runtime { return "2.1.0"; } - void DisallowNewSystemWeaks() EXCLUSIVE_LOCKS_REQUIRED(Locks::mutator_lock_); + void DisallowNewSystemWeaks() SHARED_LOCKS_REQUIRED(Locks::mutator_lock_); void AllowNewSystemWeaks() SHARED_LOCKS_REQUIRED(Locks::mutator_lock_); + void EnsureNewSystemWeaksDisallowed() SHARED_LOCKS_REQUIRED(Locks::mutator_lock_); // Visit all the roots. If only_dirty is true then non-dirty roots won't be visited. If // clean_dirty is true then dirty roots will be marked as non-dirty after visiting. @@ -287,6 +292,17 @@ class Runtime { void VisitNonThreadRoots(RootCallback* visitor, void* arg) SHARED_LOCKS_REQUIRED(Locks::mutator_lock_); + void VisitTransactionRoots(RootCallback* visitor, void* arg) + SHARED_LOCKS_REQUIRED(Locks::mutator_lock_); + + // Visit all of the thread roots. + void VisitThreadRoots(RootCallback* visitor, void* arg) SHARED_LOCKS_REQUIRED(Locks::mutator_lock_); + + // Flip thread roots from from-space refs to to-space refs. + size_t FlipThreadRoots(Closure* thread_flip_visitor, Closure* flip_callback, + gc::collector::GarbageCollector* collector) + LOCKS_EXCLUDED(Locks::mutator_lock_); + // Visit all other roots which must be done with mutators suspended. void VisitNonConcurrentRoots(RootCallback* visitor, void* arg) SHARED_LOCKS_REQUIRED(Locks::mutator_lock_); |