I implemented delegates in D
maik klein via Digitalmars-d
digitalmars-d at puremagic.com
Sat Jun 11 04:09:53 PDT 2016
On Friday, 10 June 2016 at 00:23:13 UTC, Mathias Lang wrote:
> 2016-06-10 1:20 GMT+02:00 maik klein via Digitalmars-d <
> digitalmars-d at puremagic.com>:
> Did you try to send a native delegate ? I would be very
> surprised if you were allowed to do so.
That is what I am currently doing and it at least appears to be
working as intended.
> Note that not all delegates allocate. Function local delegate
> refering to variable do, but the one refering to aggregate
> never do.
All my closures/delegated need to capture a local variable. They
capture a pointer to a heap allocated "Cell". I use the cell as a
primitive to write my result into. It has an internal atomic
counter, if the counter as decremented to 0, I know that I can
safely read from it.
I am not sure how I would implement it differently.
So that means that all my delegates allocate, and they allocate
with the GC.
More information about the Digitalmars-d
mailing list