The documentation for runtime.AddCleanup
<https://pkg.go.dev/runtime#AddCleanup> says:
> There is no specified order in which cleanups will run.
Given the following types:
type Parent struct {
parentResource int
}
type Child struct {
parent *Parent
childResource int
}
and the following code:
parentResource := 0
parent := &Parent{
parentResource: parentResource,
}
runtime.AddCleanup(parent, func (int) {}, parentResource)
childResource := 1
child := &Child{
parent: parent,
childResource: childResource
}
runtime.AddCleanup(child, func(int) {}, childResource)
is it guaranteed that the cleanup for childResource will run before the
cleanup for parentResource?
Notes:
* I know that the structs here are small enough to be "tiny", but Child
contains a pointer to Parent so the cleanups should run.
* The example here is for a specific case where the resources are allocated
by a C library, the child resource is "owned" by the parent, and so it's
important that the child resource cleanup runs before the parent resource
cleanup.
Many thanks for any insight!
Tom
The actual code I'm worried about is
here:
https://github.com/twpayne/go-geos/pull/183/commits/8ea732a7c65f873d48526cb1574e3c137dd66f74
--
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 [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/golang-nuts/38a31657-5073-46c1-8726-8cec39652dd8n%40googlegroups.com.