Являются ли функции регулярных выражений, такие как "регулярные выражения", потокобезопасными в libc версии 2.2.5? - PullRequest
4 голосов
/ 17 октября 2011

Я читал, что функции регулярных выражений в libc должны быть потокобезопасными, но я также читал, что в более ранней версии это было не так.

Теперь мне нужно работать со встроенной системой, которая имеет старую версию libc 2.2.5.

Так что я не совсем уверен, являются ли такие функции, как "regexec", потокобезопасными или они должны быть защищены мьютексом?

Если бы кто-нибудь имел хоть какое-то представление об этом, я был бы признателен. Я также не очень уверен в том, что мне следует проверять, чтобы проверить безопасность потоков этих функций.

1 Ответ

2 голосов
/ 18 октября 2011

Я искал файл NEWS в последней версии libc (2.13) по ключевому слову regex.В безопасности потоков нет ничего, кроме следующего примечания:

Version 2.3

...

Isamu Hasegawa contributed a completely new and POSIX-conformant implementation of regex.

Но, согласно this , после 2.3 возникли проблемы с параллелизмом, поэтому для 2.2 ситуация выглядит не очень хорошо.5

Согласно этому очень похожему вопросу Соответствие POSIX означает, что регулярное выражение должно быть поточно-ориентированным, но это не означает, что в более ранней версии libc нет ошибки параллелизма.

...