June 13, 2013 Is heap memory released after the termination of a thread? | ||||
---|---|---|---|---|
| ||||
Hello, in [1] is said that data defined in modules, if it's not shared, is copied for each thread. This means that new memory for this data is allocated every time when a new thread is started and when the thread terminates it is released [2]. But how about the memory created by this thread on the heap? Is it released, too, especialy when the garbage collector is turned off? Thank you. References [1] http://www.informit.com/articles/article.aspx?p=1609144&seqNum=3 [2] http://dlang.org/module.html |
June 13, 2013 Re: Is heap memory released after the termination of a thread? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Vitali | On Thursday, 13 June 2013 at 12:50:49 UTC, Vitali wrote:
> Hello,
> in [1] is said that data defined in modules, if it's not shared, is copied for each thread. This means that new memory for this data is allocated every time when a new thread is started and when the thread terminates it is released [2].
>
> But how about the memory created by this thread on the heap? Is it released, too, especialy when the garbage collector is turned off?
No, it will be released at some undetermined time later by the garbage collector, assuming nothing else references it. Remember that heap references can be sent across threads using std.concurrency.send (if it is safe to do so).
|
Copyright © 1999-2021 by the D Language Foundation