Я работаю над многопоточным проектом, и мне было интересно, есть ли способ, чтобы компилятор пометил использование не реентерабельных вызовов библиотеки C (например, strtok intsead из strtok_r)? Если нет, есть ли список вызовов, которые не реентерабельны, чтобы я мог периодически просматривать свою базу кода с помощью grep?
Связанный с этим вопрос заключается в том, есть ли способ пометить использование сторонней библиотекой нереентрантных вызовов.
Я предполагаю, что повторный вход подразумевает безопасность потоков, но не обязательно наоборот. Есть ли веская причина использовать вызовы без повторного входа в многопоточном проекте?
rand()
- это философский вопрос. Идеальная реализацияrand
(оракул) по своей сути была бы потокобезопасной. - person MSalters   schedule 25.06.2011