Add documentation for MONO_ENABLE_COOP
authorMiguel de Icaza <miguel@gnome.org>
Mon, 21 Dec 2015 19:16:45 +0000 (14:16 -0500)
committerMiguel de Icaza <miguel@gnome.org>
Mon, 21 Dec 2015 19:16:49 +0000 (14:16 -0500)
man/mono.1

index 164ec31fcc37ec1bc84784ebeec4af2b28e70f7c..b92c29473fa6d8a8a2b1c6f1d28c60e72b2232f9 100644 (file)
@@ -1053,6 +1053,20 @@ For platforms that do not otherwise have a way of obtaining random bytes
 this can be set to the name of a file system socket on which an egd or
 prngd daemon is listening.
 .TP
+\fBMONO_ENABLE_COOP\fR
+This makes the Mono runtime and the SGen garbage collector run in cooperative
+mode as opposed to run on preemptive mode.   Preemptive mode is the mode
+that Mono has used historically, going back to the Boehm days, where the
+garbage collector would run at any point and suspend execution of all 
+threads as required to perform a garbage collection.  The cooperative mode
+on the other hand requires the cooperation of all threads to stop at a 
+safe point.   This makes for an easier to debug garbage collector.   As
+of Mono 4.3.0 it is a work in progress, and while it works, it has not
+been used extensively.   This option enabled the feature and allows us to
+find spots that need to be tuned for this mode of operation.   Alternatively,
+this mode can be enabled at compile time by using the --with-cooperative-gc
+flag when calling configure.
+.TP
 \fBMONO_ENABLE_SHM\fR
 Unix only: Enable support for cross-process handles.  Cross-process
 handles are used to expose process handles, thread handles, named