# PR_Unlock Releases a specified lock object. Releasing an unlocked lock results in an error. Attempting to release a lock that was locked by a different thread causes undefined behavior. ## Syntax ```{code} #include PRStatus PR_Unlock(PRLock *lock); ``` ### Parameter {ref}`PR_Unlock` has one parameter: `lock` : A pointer to a lock object to be released. ### Returns The function returns one of the following values: - If successful, `PR_SUCCESS`. - If unsuccessful (for example, if the caller does not own the lock), `PR_FAILURE`. ## See Also - [PR_Lock](PR_Lock)