예제 #1
0
파일: jugc.c 프로젝트: iitalics/Jupiter
void juGC_step ()
{
	if (first(GREY) != NULL)
		make_black(first(GREY));
	else
		juGC_end();
}
예제 #2
0
파일: gc.cpp 프로젝트: mildred/caribou
	void GarbageCollector::scan_greys(size_t max)
	{
		GCMarker* v = greys->next;
		GCMarker* new_next;
		unsigned int c = greys->colour;

		while(v->colour == c)
		{
			new_next = v->next;

			// Scan children, then make the node black.
			v->walk();
			make_black(v);

			if(--max == 0)
				break;

			v = new_next;
		}
	}