[Issue 9601] Make regular D objects on closures

d-bugmail at puremagic.com d-bugmail at puremagic.com
Wed Feb 27 09:05:31 PST 2013


http://d.puremagic.com/issues/show_bug.cgi?id=9601



--- Comment #4 from Maxim Fomin <maxim at maxim-fomin.ru> 2013-02-27 09:05:30 PST ---
(In reply to comment #0)
> The idea is to make created delegate data pointer referring to a valid D object
> just like for class member function.

Since creation delegate data pointer points to valid memory forgetting about
tricks to deliberatly break it. Problem may come when i.e. class destructor
references such object which was collected already by GC. But pointer should be
reset to null. This actually is a problem of class destructor synchronizing.
Are you targeting at this problem?

> It will allow passing closure delegate to functions where such objects are
> expected and controlling/watching delegate lifetime.

How do you suggest to pass information within delegate about data lifetime? Or
what mechanism (in addition to GC) would ensure that?

> Once it will be implemented the only "raw" delegates would be struct member
> function delegates? which are used rarely and can easily be avoided.

If such delegate references this struct pointer it may lead to trouble.
Otherwise what is specific to struct delegates?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list