It is probably not needed here, since the slot is freed up quite quickly (at the end of the method) and the remaining queue is also kept alive anyway.
Setting it to selve instead of null is typically used to reduce the risk of NPEs (but it might on the other hand increase the risk of lovelocks) Not sure if it's a good idea to remove the setting for concurrency reasons, but it seems not really be beneficial for GC. Gruss Bernd -- http://bernd.eckenfels.net ________________________________ Von: hotspot-gc-use <hotspot-gc-use-boun...@openjdk.java.net> im Auftrag von Robert Lu <robberp...@gmail.com> Gesendet: Monday, June 22, 2020 5:40:08 AM An: Damon Hart-Davis <d...@exnet.com> Cc: hotspot-gc-use@openjdk.java.net <hotspot-gc-use@openjdk.java.net> Betreff: Re: How could self link help GC? Hi, Damon. But once dequeued, old node is dead object. The pointer(h.next) from dead object to alive/dead object makes no difference to GC. So I thinks h.next=h is meaningless. And, why isn't it h.next=null ? On Mon, Jun 22, 2020 at 12:18 AM Damon Hart-Davis <d...@exnet.com<mailto:d...@exnet.com>> wrote: By avoiding spurious pointers to h.next keeping the ’next’ item alive longer than necessary. Rgds Damon On 21 Jun 2020, at 12:59, Robert Lu <robberp...@gmail.com<mailto:robberp...@gmail.com>> wrote: Hi, On java.util.concurrent.LinkedBlockingQueue#dequeue https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/concurrent/LinkedBlockingQueue.java#L217 : private E dequeue() { // assert takeLock.isHeldByCurrentThread(); // assert head.item == null; Node<E> h = head; Node<E> first = h.next; h.next = h; // help GC head = first; E x = first.item; first.item = null; return x; } Why does h.next = h help GC? -- Robert Lu <robberp...@gmail.com<mailto:robberp...@gmail.com>> About me: https://www.robberphex.com/about-me _______________________________________________ hotspot-gc-use mailing list hotspot-gc-use@openjdk.java.net<mailto:hotspot-gc-use@openjdk.java.net> https://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use -- Robert Lu <robberp...@gmail.com<mailto:robberp...@gmail.com>> About me: https://www.robberphex.com/about-me
_______________________________________________ hotspot-gc-use mailing list hotspot-gc-use@openjdk.java.net https://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use