Advice wanted on garbage collection of sockets for c++ programmer using D
Moritz Maxeiner via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Wed Jun 28 04:34:17 PDT 2017
On Wednesday, 28 June 2017 at 09:22:07 UTC, Guillaume Piolat
wrote:
> Deterministic destruction is a _solved_ problem in C++, and a
> number of users to convert are now coming from C++.
It is also in D, as long as you don't use the GC (which is
inherently non-deterministic).
> 3. Suggest a systematic, always working, workaround (or
> language change such as "GC doesn't call ~this). C++ users have
> no difficulty having an object graph with detailed ownership
> schemes, that's what they do day in day out.
>
> It's important to have a _simple_ story about resource release,
> else we will talk about "GC" every day, and hearing about "GC"
> is bad for marketing.
Requirement: Do not allocate using the GC
Option 1) Use structs with `@disable this`, `@disable
this(this)`, and a destructor that checks whether the resource
reference is != invalid resource reference before trying to
release.
Option 2) Use classes with simple constructor/destructor layout.
If you want to integrate a check that the requirement holds (with
either class or struct), put `if (gc_inFinalizer) throw
SomeError` into the class/struct destructor
More information about the Digitalmars-d-learn
mailing list