Являются ли функции регулярных выражений, такие как "регулярные выражения", потокобезопасными в 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 нет ошибки параллелизма.

Другие вопросы по тегам