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;