Recently, I've seen the specifications for pthread_rwlock_* set of functions. I always knew Read/Write locks were possible to construct by hand and Butenhof's Programming with POSIX Threads (1996) mentions the POSIX.1j API. While many different systems support this functionality (e.g., Compaq Tru64, FreeBSD, Solaris, Win32 Pthreads, Linux), any documentation that I've seen only mentions conformity of the API to version 2 of the Single UNIX Specification (SUSv2). But, all this documentation seem to have been written in 1998 or so. Has there been official adoption of these functions into the POSIX standard?
Has anyone had occasion to use the Read/Write locks API? Was the experience good or bad? What about performance? Looking for more info on this topic, I came across a performance study that reported R/W locks took about twice as long over simple mutex. Would the advantage of having multiple readers in the protected region of code offset this extra time needed to use R/W locks?