C ++ критически важные разделы бесполезны при возврате указателей на данные - PullRequest
0 голосов
/ 14 марта 2012

Я думаю, что уже знаю ответ на этот вопрос, но в настоящее время я работаю над перестройкой некоторого устаревшего кода Visual C ++ 6.0, и я работал над добавлением некоторых CCriticalSections, но потом я подумал об этом, если всемоя функция - возвращать указатель на некоторые данные, я думаю, что критические разделы, вероятно, бесполезны, потому что я не думаю, что я действительно защищаю данные и их указание, я не думаю, что это действительно мешает кому-либо писать в них.(при условии, что у меня такие же замки вокруг сеттера).

Что вы думаете?

Ответы [ 2 ]

3 голосов
/ 14 марта 2012

Да, если вы возвращаете указатели на данные, то возникновение проблем с указателями за пределами критического раздела может стать проблемой. Доступ к критически важным общим данным должен быть в пределах блокировки.

1 голос
/ 14 марта 2012

Я не уверен, что вы подразумеваете под CCritialSections, но в целом, функции, которые возвращают указатели или ссылки, являются не хорошими кандидатами для блокировки мьютекса. Вам нужно управлять вещами на более высоком уровне.

...