canSuspendResumeThreadLists() is suppose to indicate if JVMTI supports SuspendThreadList. If it doesn't then the agent will call SuspendThread individually on each thread in the list. There are 2 issues with it:
1. It checks the can_suspend capability, which also indicates if SuspendThread is supported. So if it ever did return false, the agent fallback attempt to use SuspendThread would fail.
2. The debug agent already requires can_suspend support or it will fail to initialize. See needed_capabilities.can_suspend in debugInit.c.
canSuspendResumeThreadLists() should be removed as should the code that is executed when it returns false.
1. It checks the can_suspend capability, which also indicates if SuspendThread is supported. So if it ever did return false, the agent fallback attempt to use SuspendThread would fail.
2. The debug agent already requires can_suspend support or it will fail to initialize. See needed_capabilities.can_suspend in debugInit.c.
canSuspendResumeThreadLists() should be removed as should the code that is executed when it returns false.