Finalization is not happening when the Concurrent Mark Sweep
collector is enabled.
The flag for when to discover weak references was
supposed to have been replicated for each
generation when the weak reference processing
was made specific to each generation to support
CMS. But it was left as a signle flag. CMS
enabled it when it started a cycle, but the
pesky gen0 collections incorrectly also enabled
and disabled their weak ref processing using the
same flag. So at the end of each gen0, we disabled
all weak ref processing, including CMS's.
Fix was to replicate the flag, and change the
code manipulating it.
collector is enabled.
The flag for when to discover weak references was
supposed to have been replicated for each
generation when the weak reference processing
was made specific to each generation to support
CMS. But it was left as a signle flag. CMS
enabled it when it started a cycle, but the
pesky gen0 collections incorrectly also enabled
and disabled their weak ref processing using the
same flag. So at the end of each gen0, we disabled
all weak ref processing, including CMS's.
Fix was to replicate the flag, and change the
code manipulating it.