Привет всем.
Решив не давно попробовать многопоточность, я использовал несколько классов из исходников к книге "Графика трехмерной компьютерной игры на основе OpenGL". И у меня возник вопрос как синхронизировать подсчет ссылок в классе Object для нескольких потоков. С методом retain() проблем нет там достаточно использовать windows функцию из набора Interlocked, а вот с методом release() проблема.
Я вижу 3 способа решения
1 Сделать метод release виртуальным и перегружать его там где это нужно.
2 Добавить в класс критическую секцию. (по мне это кажется перебор критическая секция для каждого объекта корневого класса)
3 Использовать статичную критическую секцию.
Посоветуйте что использовать или может есть другой способ?