Hi,
Though I see your point about gc() eventually returns, the spec
typically does not
guarantee than any method eventually returns. That's more a quality of
service attribute.
The sentence refers to the effort to reclaim space, not the method call.
Would it clarify the case to add a qualification to the end of the sentence:
" before the method returns or ever."
As a whole:
* Runs the garbage collector in the Java Virtual Machine.
* <p>
* Calling this method suggests that the Java Virtual Machine
* expend effort toward recycling unused objects in order to
* make the memory they currently occupy available for reuse
* by the Java Virtual Machine.
* When control returns from the method call, the Java Virtual Machine
* has made a best effort to reclaim space from all unused objects.
* There is no guarantee that this effort will recycle any particular
* number of unused objects, reclaim any particular amount of space,
* or complete at any particular time, if at all <b>before the
method returns or ever</b>.
Thanks, Roger
On 05/30/2019 06:27 AM, Roman Kennke wrote:
Any other comments on:
"* Runs the garbage collector in the Java Virtual Machine.
* <p>
* Calling this method suggests that the Java Virtual Machine
* expend effort toward recycling unused objects in order to
* make the memory they currently occupy available for reuse
* by the Java Virtual Machine.
The following two statements...
1st:
* When control returns from the method call, the Java Virtual Machine
* has made a best effort to reclaim space from all discarded objects.
2nd:
* There is no guarantee that this effort will recycle any particular
* number of unused objects, reclaim any particular amount of space,
* *or complete* at any particular time, if *at all*.
"
...makes one think that it is OK (by the spec) for System.gc() to never
complete.
Could it rather be specified that System.gc() eventually completes?
+1 I was thinking the same.
I think the intention is that GC may never actually complete, but
System.gc() must be guaranteed to eventually return.
Roman