dragonwell-project / dragonwell8

Alibaba Dragonwell8 JDK
http://dragonwell-jdk.io
GNU General Public License v2.0
4.2k stars 497 forks source link

[Bug] CyclicBarrier问题 #451

Closed jackfanwan closed 1 year ago

jackfanwan commented 1 year ago

因为原始jdk的问题,这里会有一个bug; image 这里是先唤醒所有的线程,然后才重新创建一个Generation对象; image 但是被唤醒的线程,存在因为当前线程还没有重新创建Generation对象,导致被唤醒的线程执行g != generation判断是错的,导致被唤醒的线程重新执行了await(),导致无法再次被唤醒