ZGC has multiple modes for processing weaks. ZWeakRoots allows treating weaks as strong, and in addition to that, ZConcurrentStringTable, ZConcurrentVMWeakHandles and ZConcurrentJNIWeakGlobalHandles allow certain subsets of weak roots to be processed concurrently or in a pause. Except there is no obvious reason why you would ever opt out of doing it concurrently. So I propose to remove this functionality.
Part of the motivation is that a concurrent strong root processor is on its way, and all these modes nobody uses leads to pointless complexity.
Part of the motivation is that a concurrent strong root processor is on its way, and all these modes nobody uses leads to pointless complexity.