История изменений
Исправление MOPKOBKA, (текущая версия) :
Так спинлоки тут не помогут, вот я вызову из треда #1 свой element_free(), и он будет крутить спинлок еще 10 дней, пока тред #2 использует эти данные.
А трассирующий GC в отдельном потоке, просто идет от корня и записывает все элементы которые найдет, а потом удаляет все элементы которые не были записаны в его список. Это просто, и производительно.
Короче GC это идеально подходящий вариант для моей динамической структуры которая часто переиспользует элементы.
Исходная версия MOPKOBKA, :
Так спинлоки тут не помогут, вот я вызову из треда #1 свой element_free(), и он будет крутить спинлок еще 10 дней, пока тред #2 использует эти данные.
А трассирующий GC в отдельном потоке, просто идет от корня и записывает все элементы которые найдет, а потом удаляет все элементы которые не были записаны в его список. Это просто, и производительно.