является реентерабельной libstdc++ библиотекой?

Я использую libstdc++ на MAC для разработки расширений для Firefox. У меня возникают сбои в библиотеке libstdc+, когда я ссылаюсь на нее через несколько расширений Firefox. Я думал, является ли libstdc++ для компилятора XCode реентерабельным или нет. Если нет, доступна ли какая-либо версия libstdС++ с реентерабельностью?


person krissam    schedule 27.10.2010    source источник
comment
Вы уверены, что у вас проблемы с повторным входом? Можете ли вы предоставить более подробную информацию о сбое?   -  person Eugen Constantin Dinca    schedule 27.10.2010


Ответы (1)


См. HOWTO по адресу http://www.cs.huji.ac.il/~etsman/Docs/gcc-3.4-base/libstdc++/html/17_intro/howto.html, в частности, раздел «Стандартная библиотека C++ и многопоточность». ".

person Vicky    schedule 27.10.2010
comment
Безопасность повторного входа и безопасность потоков связаны, но не совсем одно и то же en.wikipedia.org/wiki / - person Eugen Constantin Dinca; 27.10.2010
comment
@Eugen Constantin Dinca: Я понимаю это (хотя я признаю, что мог бы прояснить это в своем ответе). Тем не менее, не потокобезопасная функция, безусловно, не будет повторно входить, и мне кажется, что могут быть проблемы с потокобезопасностью в реализации libstdc++, в зависимости от того, как было построено приложение. - person Vicky; 27.10.2010
comment
Не обязательно, т.е. если для безопасности потоков вы используете нерекурсивный мьютекс, у вас есть функция безопасного потока, которая не является реентерабельной... (обратите внимание, что я не продвигаю использование рекурсивных мьютексов) - person Eugen Constantin Dinca; 28.10.2010
comment
@Eugin Constantin Dinca: Да, у вас может быть поточно-безопасная функция, которая не является повторно-входной, но у вас не может быть повторно-входная функция, которая не является поточно-ориентированной. Потокобезопасность является одним из требований для повторного входа. - person Vicky; 28.10.2010
comment
у вас не может быть повторно используемой функции, которая не является потокобезопасной: только если данные, с которыми она вызывается, не являются общими/доступными между потоками. - person Eugen Constantin Dinca; 30.10.2010
comment
Эта ссылка предназначена для 9-летней копии документации libstdc++, текущая версия gcc.gnu.org/onlinedocs/libstdc++/manual/using_concurrency.html - person Jonathan Wakely; 29.12.2012