#include <synch.h> (or #include <thread.h>) int rw_unlock(rwlock_t *rwlp);
Use rw_unlock() to unlock a readers/writer lock pointed to by rwlp. The readers/writer lock must be locked and the calling thread must hold the lock either for reading or writing. When any other threads are waiting for the readers/writer lock to become available, one of them is unblocked.
rw_unlock() returns zero after completing successfully. Any other returned value indicates that an error occurred. When any of the following conditions occur, the function fails and returns the corresponding value.
EINVAL
Invalid argument.
EFAULT
rwlp points to an illegal address.