rw_trywrlock() returns zero after completing successfully.
Any other return value indicates that an error occurred. When any of the following
conditions occurs, the function fails and returns the corresponding value.
points to an illegal address.
The read-write lock pointed to
by rwlp was already locked.