attachserverproc-dont-dequeue-if-not-in-queue-take-two-20040818

nWaiting ended up negative, because the dequeuer (GetCall) decremented.
This commit is contained in:
Derrick Brashear 2004-08-18 23:46:37 +00:00
parent 3de51188f7
commit 399785acf1

View File

@ -3996,11 +3996,12 @@ rxi_AttachServerProc(register struct rx_call *call,
if (call->flags & RX_CALL_WAIT_PROC) {
/* Conservative: I don't think this should happen */
call->flags &= ~RX_CALL_WAIT_PROC;
MUTEX_ENTER(&rx_stats_mutex);
rx_nWaiting--;
MUTEX_EXIT(&rx_stats_mutex);
if (queue_IsOnQueue(call))
queue_Remove(call);
if (queue_IsOnQueue(call)) {
queue_Remove(call);
MUTEX_ENTER(&rx_stats_mutex);
rx_nWaiting--;
MUTEX_EXIT(&rx_stats_mutex);
}
}
call->state = RX_STATE_ACTIVE;
call->mode = RX_MODE_RECEIVING;