summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gc.rb58
1 files changed, 33 insertions, 25 deletions
diff --git a/gc.rb b/gc.rb
index d3bb8db036..1298e30056 100644
--- a/gc.rb
+++ b/gc.rb
@@ -7,31 +7,39 @@
# You may obtain information about the operation of the \GC through GC::Profiler.
module GC
- # Initiates garbage collection, even if manually disabled.
- #
- # The +full_mark+ keyword argument determines whether or not to perform a
- # major garbage collection cycle. When set to +true+, a major garbage
- # collection cycle is run, meaning all objects are marked. When set to
- # +false+, a minor garbage collection cycle is run, meaning only young
- # objects are marked.
- #
- # The +immediate_mark+ keyword argument determines whether or not to perform
- # incremental marking. When set to +true+, marking is completed during the
- # call to this method. When set to +false+, marking is performed in steps
- # that are interleaved with future Ruby code execution, so marking might not
- # be completed during this method call. Note that if +full_mark+ is +false+,
- # then marking will always be immediate, regardless of the value of
- # +immediate_mark+.
- #
- # The +immediate_sweep+ keyword argument determines whether or not to defer
- # sweeping (using lazy sweep). When set to +false+, sweeping is performed in
- # steps that are interleaved with future Ruby code execution, so sweeping might
- # not be completed during this method call. When set to +true+, sweeping is
- # completed during the call to this method.
- #
- # Note: These keyword arguments are implementation and version-dependent. They
- # are not guaranteed to be future-compatible and may be ignored if the
- # underlying implementation does not support them.
+ # Initiates garbage collection, even if explicitly disabled by GC.disable.
+ #
+ # Keyword arguments:
+ #
+ # - +full_mark+:
+ # its boolean value determines whether to perform a major garbage collection cycle:
+ #
+ # - +true+: initiates a major garbage collection cycle,
+ # meaning all objects (old and new) are marked.
+ # - +false+: initiates a minor garbage collection cycle,
+ # meaning only young objects are marked.
+ #
+ # - +immediate_mark+:
+ # its boolean value determines whether to perform incremental marking:
+ #
+ # - +true+: marking is completed before the method returns.
+ # - +false+: marking is performed by parts,
+ # interleaved with program execution both before the method returns and afterward;
+ # therefore marking may not be completed before the return.
+ # Note that if +full_mark+ is +false+, marking will always be immediate,
+ # regardless of the value of +immediate_mark+.
+ #
+ # - +immediate_sweep+:
+ # its boolean value determines whether to defer sweeping (using lazy sweep):
+ #
+ # - +true+: sweeping is completed before the method returns.
+ # - +false+: sweeping is performed by parts,
+ # interleaved with program execution both before the method returns and afterward;
+ # therefore sweeping may not be completed before the return.
+ #
+ # Note that these keword arguments are implementation- and version-dependent,
+ # are not guaranteed to be future-compatible,
+ # and may be ignored in some implementations.
def self.start full_mark: true, immediate_mark: true, immediate_sweep: true
Primitive.gc_start_internal full_mark, immediate_mark, immediate_sweep, false
end