Unlock the right lock.
The adist_remote_lock is not held in this place, whereas the adist_recv_list_lock lock is and is picked up during the next iteration. I found this by annotating our libpthread with Clang's -Wthread-safety attributes. I will send out a patch for this in the nearby future, because it's awesome. MFC after: 2 weeks
This commit is contained in:
parent
ec92f2e61c
commit
bb8b11b330
@ -643,7 +643,7 @@ recv_thread(void *arg __unused)
|
||||
* we can use that.
|
||||
*/
|
||||
if (TAILQ_EMPTY(&adist_recv_list)) {
|
||||
rw_unlock(&adist_remote_lock);
|
||||
mtx_unlock(&adist_recv_list_lock);
|
||||
continue;
|
||||
}
|
||||
mtx_unlock(&adist_recv_list_lock);
|
||||
|
Loading…
Reference in New Issue
Block a user