pthread_rwlock now uses a mutex and condition variable internally so it doesn't need to yield while waiting!