From 8299e102c71ae0f3d04c17e089e8f960a7c2bb7e Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Sat, 8 Oct 2005 04:57:34 +0000 Subject: [PATCH] rx-tq-waiter-rework-20051007 Only Broadcast to wake threads if there are threads waiting. --- src/rx/rx.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/rx/rx.c b/src/rx/rx.c index 92b3457f1..baefb694c 100644 --- a/src/rx/rx.c +++ b/src/rx/rx.c @@ -5171,13 +5171,13 @@ rxi_Start(struct rxevent *event, register struct rx_call *call, call->flags &= ~RX_CALL_TQ_BUSY; if (call->tqWaiters || (call->flags & RX_CALL_TQ_WAIT)) { dpf(("call %x has %d waiters and flags %d\n", call, call->tqWaiters, call->flags)); - } #ifdef RX_ENABLE_LOCKS - osirx_AssertMine(&call->lock, "rxi_Start start"); - CV_BROADCAST(&call->cv_tq); + osirx_AssertMine(&call->lock, "rxi_Start start"); + CV_BROADCAST(&call->cv_tq); #else /* RX_ENABLE_LOCKS */ - osi_rxWakeup(&call->tq); + osi_rxWakeup(&call->tq); #endif /* RX_ENABLE_LOCKS */ + } return; } if (call->error) { @@ -5191,13 +5191,13 @@ rxi_Start(struct rxevent *event, register struct rx_call *call, call->flags &= ~RX_CALL_TQ_BUSY; if (call->tqWaiters || (call->flags & RX_CALL_TQ_WAIT)) { dpf(("call %x has %d waiters and flags %d\n", call, call->tqWaiters, call->flags)); - } #ifdef RX_ENABLE_LOCKS - osirx_AssertMine(&call->lock, "rxi_Start middle"); - CV_BROADCAST(&call->cv_tq); + osirx_AssertMine(&call->lock, "rxi_Start middle"); + CV_BROADCAST(&call->cv_tq); #else /* RX_ENABLE_LOCKS */ - osi_rxWakeup(&call->tq); + osi_rxWakeup(&call->tq); #endif /* RX_ENABLE_LOCKS */ + } rxi_CallError(call, call->error); return; } @@ -5279,13 +5279,13 @@ rxi_Start(struct rxevent *event, register struct rx_call *call, call->flags &= ~RX_CALL_TQ_BUSY; if (call->tqWaiters || (call->flags & RX_CALL_TQ_WAIT)) { dpf(("call %x has %d waiters and flags %d\n", call, call->tqWaiters, call->flags)); - } #ifdef RX_ENABLE_LOCKS - osirx_AssertMine(&call->lock, "rxi_Start end"); - CV_BROADCAST(&call->cv_tq); + osirx_AssertMine(&call->lock, "rxi_Start end"); + CV_BROADCAST(&call->cv_tq); #else /* RX_ENABLE_LOCKS */ - osi_rxWakeup(&call->tq); + osi_rxWakeup(&call->tq); #endif /* RX_ENABLE_LOCKS */ + } } else { call->flags |= RX_CALL_NEED_START; } -- 2.39.5