October 2018
Beginner
794 pages
19h 23m
English
Of course, today, with MT applications being the de facto reality, what do we do? The glibc maintainers understand these issues, and have used precisely the refactoring techniques – passing additional parameters to avoid the usage of global and/or static variables (like we did previous with our ch16/mt_iobuf_rfct.c code), including using parameters as return values—to refactor standard glibc functions to become thread-safe. The glibc naming convention is if the older function is named foo, the refactored, usually reentrant- and thread-safe, version is named foo_r.
To help lend clarity to this discussion, let's take an example of a glibc API that has both the older foo and the newer foo_r functionality. ...