Являются ли функции регулярных выражений, такие как "регулярные выражения", потокобезопасными в libc версии 2.2.5?
Я читал, что функции регулярных выражений в libc должны быть потокобезопасными, но я также читал, что в более ранней версии это было не так.
Теперь я должен работать над встроенной системой, которая имеет старую версию libc 2.2.5.
Так что я не совсем уверен, являются ли такие функции, как "regexec" потокобезопасными, или они должны быть защищены мьютексом?
Если у кого-то есть какие-либо подсказки по этому поводу, я был бы благодарен Я также не очень уверен, что я должен проверить, чтобы проверить безопасность потоков этих функций.
1 ответ
Я искал в файле NEWS в последней версии libc (2.13) ключевое слово regex. В безопасности потоков нет ничего, кроме следующего замечания:
Version 2.3
...
Isamu Hasegawa contributed a completely new and POSIX-conformant implementation of regex.
Но в соответствии с этим после 2.3 возникли проблемы с параллелизмом, поэтому для 2.2.5 все выглядит не так хорошо
В соответствии с этим очень похожим вопросом соответствие POSIX означает, что regexec должен быть потокобезопасным, но это не означает, что в более ранней версии libc нет ошибки параллелизма.