mirror of
https://github.com/justinethier/cyclone.git
synced 2025-07-14 08:17:35 +02:00
Added TODO
This commit is contained in:
parent
7276eea773
commit
ae46e39c45
1 changed files with 6 additions and 0 deletions
6
gc.c
6
gc.c
|
@ -932,6 +932,12 @@ void gc_collector_trace()
|
||||||
while (m->last_read < m->last_write) {
|
while (m->last_read < m->last_write) {
|
||||||
clean = 0;
|
clean = 0;
|
||||||
(m->last_read)++;
|
(m->last_read)++;
|
||||||
|
TODO: I think there is an off-by-one error here. inspect last read/write.
|
||||||
|
is the code going one too many? per paper it is not, but based on
|
||||||
|
logs it looks like it is reading past end of buffer. (ie, errors always seem
|
||||||
|
to be on the last object traced, and checking the history, an object
|
||||||
|
incorrectly marked at position X can be seen to have been stored at position
|
||||||
|
X in a previous collection.
|
||||||
printf("gc_mark_black mark buffer %p, last_read = %d last_write = %d\n",
|
printf("gc_mark_black mark buffer %p, last_read = %d last_write = %d\n",
|
||||||
(m->mark_buffer)[m->last_read],
|
(m->mark_buffer)[m->last_read],
|
||||||
m->last_read, m->last_write);
|
m->last_read, m->last_write);
|
||||||
|
|
Loading…
Add table
Reference in a new issue