Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorAndi McClure <andi.mcclure@xamarin.com>2016-08-19 23:07:22 +0300
committerAndi McClure <andi.mcclure@xamarin.com>2016-08-19 23:07:22 +0300
commitdb60c62ff99186297b40cf36708233c3d3bc56bc (patch)
tree635ed10d073c0748fadca36edf6a96ae567832e7 /docs
parentca48b5e9e228e0eaeae877b27d60313d87487d82 (diff)
GC bridge: Include non-bridged objects in the exported object graph
Introduces a mechanism for non-bridged SCCs which lay between bridged SCCs in the SCC forest to be reported to the bridge client. In this version, such non-bridged SCCs are always reported. The result is that most GCs get a little slower but GCs in which the "double fan" shape appears (many bridged objects link to one C# object which links to many bridged objects) become massively faster. Because before clients were allowed to assume exported SCCs were always bridged, SGEN_BRIDGE_VERSION has been incremented.
Diffstat (limited to 'docs')
-rw-r--r--docs/sources/mono-api-gc.html7
1 files changed, 3 insertions, 4 deletions
diff --git a/docs/sources/mono-api-gc.html b/docs/sources/mono-api-gc.html
index 20d6cb9dc9b..cddef0364cb 100644
--- a/docs/sources/mono-api-gc.html
+++ b/docs/sources/mono-api-gc.html
@@ -40,9 +40,8 @@
<p>The output of the SCC analysis is passed to the
`cross_references()` callback. It is expected to set the
`is_alive` flag on those strongly connected components that it
- wishes to be kept alive. Only bridged objects will be
- reported to the callback, i.e., non-bridged objects are
- removed from the callback graph.
+ wishes to be kept alive. The value of `is_alive` will be
+ ignored on any SCCs which lack bridges.
<p>In monodroid each bridged object has a corresponding Java
mirror object. In the bridge callback it reifies the Mono
@@ -63,7 +62,7 @@
<div class="mapi-header">
enum {
- SGEN_BRIDGE_VERSION = 4
+ SGEN_BRIDGE_VERSION = 5
};
typedef enum {