DescriptionAdd ImmutableHeap class consisting of parts
The ImmutableHeap has it's own Heap object and a number of parts. Scheduler
worker threads can aquire parts. The parts are used for allocation of immutable
objects while a process is being interpreted. Once an allocation failure
happens, the part is released to the ImmutableHeap.
The ImmutableHeap decides when it should be collected. Currently this is
implemented in a very simple way: As soon as enough parts have been given out
(and returned) it will signal that it should be collected.
The scheduler will request parts, and once it gives a part back to the
ImmutableHeap it might need to trigger a immutable GC.
The GC thread currently stopps the whole program, performs the collection and
resumes the program. But going forward this could happen concurrently with the
scheduler interpreting processes.
[A additional forwarding word for immutable objects and an updated identical()
implementation should be enough.]
BUG=
R=ager@google.com
Committed: https://github.com/dart-lang/fletch/commit/a8a9d4163d77a7561ffae4bf12a143119cf90550
Patch Set 1 #Patch Set 2 : #
Total comments: 16
Patch Set 3 : Addressed comments, merged other CL about allocation budget in space #
Total comments: 2
Messages
Total messages: 10 (4 generated)
|