summaryrefslogtreecommitdiffstats
path: root/runtime/runtime.h
diff options
context:
space:
mode:
authorHiroshi Yamauchi <yamauchi@google.com>2015-01-09 14:03:35 -0800
committerHiroshi Yamauchi <yamauchi@google.com>2015-01-23 14:07:32 -0800
commit2cd334ae2d4287216523882f0d298cf3901b7ab1 (patch)
treeb72d3d07e5a04151caca96cae345075b6e4452b0 /runtime/runtime.h
parent604e2828896fbb8663897d1e75112da7305ead4c (diff)
downloadart-2cd334ae2d4287216523882f0d298cf3901b7ab1.zip
art-2cd334ae2d4287216523882f0d298cf3901b7ab1.tar.gz
art-2cd334ae2d4287216523882f0d298cf3901b7ab1.tar.bz2
More of the concurrent copying collector.
Bug: 12687968 Change-Id: I62f70274d47df6d6cab714df95c518b750ce3105
Diffstat (limited to 'runtime/runtime.h')
-rw-r--r--runtime/runtime.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/runtime/runtime.h b/runtime/runtime.h
index d58fe3c..c5a8739 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_);