Здравствуйте Dima2, Вы писали:
D>Представим что ф-я AddInternal(ptr) глобальная, которая соотвественно работает с глобальными переменными, и ты создаеш различные экземпляры твоего объекта в разных потоках, что тогда?
Глобальные объекты это плохо. Надо завернуть его в
класс запихав в private приделать нормальные функции
доступа и лочить mutex в этом классе уже внутри
функций.
Данный подход гарантирует что
1) никто не забудет полочить mutex
2) никто не полочит его на пол дня без необходимости.
И вообще на тему mutex-ов ты меня не переспоришь,
в программе над которой я сейчас работаю в среднем
100 потоков(в основном не мои правда, но как выглядит
работа с ними я очень хорошо представляю)
Т.е. вообщем главная идеология что объект должен
быть инкапсулировани и сам контролировать свою
синхронизацию.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев