avoid-blocking-with-connhashtable-lock-in-reapconnections-20090307

LICENSE BSD

instead of potentially blocking waiting for a call lock, assume if the call is
locked, the conn is still busy. also, don't even try to get the conn data lock
if we don't need to
This commit is contained in:
Jeffrey Altman 2009-03-07 14:10:23 +00:00 committed by Derrick Brashear
parent 19ffc146fa
commit 581fd18bd9

View File

@ -6093,8 +6093,11 @@ rxi_ReapConnections(struct rxevent *unused, void *unused1, void *unused2)
for (i = 0; i < RX_MAXCALLS; i++) {
call = conn->call[i];
if (call) {
int code;
havecalls = 1;
MUTEX_ENTER(&call->lock);
code = MUTEX_TRYENTER(&call->lock);
if (!code)
continue;
#ifdef RX_ENABLE_LOCKS
result = rxi_CheckCall(call, 1);
#else /* RX_ENABLE_LOCKS */