Open GoogleCodeExporter opened 9 years ago
This can be reproduced on MacOS X 10.6 by mosh -5 src/all-tests.scm.
Defect => Enhancement. It's not a bug, just a design issue because any user
code can introduce this.
To resolve this problem:
1) Stop using C++ GC interface, especially "gc_cleanup." There is no way to
avoid this problem with C++ interface.
1') Introduce additional C++ interface which allows GC_register_finalizer_no_order.
2) Do 1') for Ports. Other gc_cleanup usage may be safe, because they won't
include any GC managed object into it. But Ports can include some Object(which
may be GC managed) into it and can form a cyclic reference.
3) Stub out warning messages. This warning is just harmless.
Original comment by oku...@gmail.com
on 4 Jun 2011 at 9:25
4) Move gc_cleanup to OSCompat's File class.
5) Stop doing close() at finalizer. Enforce users to closing their opened ports.
In BoehmGC, finalizers are not guaranteed to be called (because it's
conservative GC). So relying this feature may brake something.
I propose 5) solution.
Original comment by oku...@gmail.com
on 4 Jun 2011 at 10:24
Original issue reported on code.google.com by
hige...@gmail.com
on 2 Jun 2011 at 9:27Attachments: