On Saturday, 29 August 2015 at 23:08:45 UTC, Timon Gehr wrote:
On 08/29/2015 04:45 PM, rsw0x wrote:
On Saturday, 29 August 2015 at 14:32:27 UTC, Timon Gehr wrote:
On 08/29/2015 04:20 PM, cym13 wrote:
On Saturday, 29 August 2015 at 14:17:10 UTC, rsw0x wrote:
[...]

After reading all that, I too am convinced that the GC shouldn't call
the destructor.

But then classes with destructors shouldn't be allowed to be allocated on the GC heap in the first place, which is a PITA as well. (Note that classes/arrays can have destructors because some component structs have them; structs generally assume that their destructors will be
called.)

make classes with destructors(and structs allocated via new) have RC
semantics.

RC is an especially eager form of GC, that does not deal with cycles by default. Why does it help?

The problem is that there's no guarantee the destructor will run with the GC, no guarantee what thread it will run on, and no guarantee on when it will run. RC guarantees all three of these outside of cycles.

Reply via email to