As shown in the following code:

cyclic structure with finalizer <https://go.dev/play/p/Fn_h08y-L6b>

The s1 & s2 didn't been free, and finalizer didn't run. But when enable the 
line which have been commented, all run as expected(s1 & s2 been free)。

I have seen the comment in runtime.SetFinalizer: If a cyclic structure 
includes a block with a finalizer, that cycle is not guaranteed to be 
garbage collected and the finalizer is not guaranteed to run, because there 
is no ordering that respects the dependencies.

But why it haven't been free in first code?

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/bdb5a7dc-e68b-417c-80d8-3fabb9013dc9n%40googlegroups.com.

Reply via email to