I need a detailed document about druntime.
Adam D Ruppe
destructionator at gmail.com
Mon Oct 11 15:24:07 UTC 2021
On Monday, 11 October 2021 at 15:18:11 UTC, Ferhat Kurtulmuş
wrote:
> "Each call to initialize must be paired by a call to terminate.'
It is so the refcount works out.
When you call initialize, it does something like:
if(refcount == 0)
actually intialize; // calls constructors etc
refcount++;
When you call terminate, it does:
refcount--;
if(refcount == 0)
actually terminate; // calls destructors etc
If you don't pair it, the refcount will be off, so the next call
to terminate will still see ref > 0 and not actually terminate.
The D main inserts a call to init before main and a call to
terminate after main automatically.
More information about the Digitalmars-d-learn
mailing list