Потокобезопасность и Glibc
Опубликовано 12.9.2014 16:39 пользователем Peter Lemenkov
Alexandre Oliva написал статью о многопоточности и потокобезопасности в Glibc.
К сожалению, Glibc не полностью соответствует стандарту POSIX в терминах потокобезопасности. И, к еще большему сожалению, проблемы есть не только в расширениях Glibc, но и в реализации POSIX-стандартных функций. В Red Hat озаботились проблемой, и с прошлого года вели аудит функций Glibc на предмет соответствия стандарту. Сейчас работа завершена, в общем никаких открытий не сделано, но удалось составить список различий между POSIX и Glibc. Дальнейшие шаги пока определяются - порой POSIX не требует потокобезопасности, а в Glibc она реализована, но порой бывает и наоборот. В последнем случае, перед исправлением надо учесть API/ABI-совместимость.
В статье, Alexandre рассказывает о том, почему функции бывают потоконебезопасными, что сделать в программе, чтобы она использовала эти функции, и работала, как ожидается, и что еще почитать по теме.
К сожалению, Glibc не полностью соответствует стандарту POSIX в терминах потокобезопасности. И, к еще большему сожалению, проблемы есть не только в расширениях Glibc, но и в реализации POSIX-стандартных функций. В Red Hat озаботились проблемой, и с прошлого года вели аудит функций Glibc на предмет соответствия стандарту. Сейчас работа завершена, в общем никаких открытий не сделано, но удалось составить список различий между POSIX и Glibc. Дальнейшие шаги пока определяются - порой POSIX не требует потокобезопасности, а в Glibc она реализована, но порой бывает и наоборот. В последнем случае, перед исправлением надо учесть API/ABI-совместимость.
В статье, Alexandre рассказывает о том, почему функции бывают потоконебезопасными, что сделать в программе, чтобы она использовала эти функции, и работала, как ожидается, и что еще почитать по теме.