On Tue, 15 Feb 2022 20:08:19 GMT, Chris Plummer <cjplum...@openjdk.org> wrote:
>> Zhengyu Gu has updated the pull request incrementally with one additional >> commit since the last revision: >> >> David and Chris' comments > > src/jdk.jdwp.agent/share/native/libjdwp/classTrack.c line 112: > >> 110: debugMonitorExit(classTrackLock); >> 111: } while (retry == JNI_TRUE); >> 112: bagDestroyBag(new_bag); > > One other comment about `classTrack_processUnloads()` in general that also > applies to the original version. It seems pretty inefficient. Every time the > debug agent gets an event it is called. On almost ever call it is returning > and empty back and allocating a new one. It seems a check for > `bagSize(deletedSignatures) == 0` and returning NULL if true would help > performance. I also believe this can be done outside of the lock (would like > David's opinion on this). I am not sure if it is possible, but checking `bagSize(deletedSignatures) == 0` seems to race against `classTrack_reset()` where it does not take `handlerLock` lock. ------------- PR: https://git.openjdk.java.net/jdk/pull/7461