diff options
Diffstat (limited to 'rpc/rpc-transport/socket/src')
-rw-r--r-- | rpc/rpc-transport/socket/src/socket.c | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/rpc/rpc-transport/socket/src/socket.c b/rpc/rpc-transport/socket/src/socket.c index a7e2bb0cfdf..2b61eb417d2 100644 --- a/rpc/rpc-transport/socket/src/socket.c +++ b/rpc/rpc-transport/socket/src/socket.c @@ -2263,16 +2263,9 @@ socket_event_poll_in (rpc_transport_t *this) rpc_transport_pollin_t *pollin = NULL; socket_private_t *priv = this->private; - do { - /* consume all we can, this is our only chance - (Edge Triggered polling in epoll) - */ - pollin = NULL; - ret = socket_proto_state_machine (this, &pollin); - - if (!pollin) - break; + ret = socket_proto_state_machine (this, &pollin); + if (pollin) { priv->ot_state = OT_CALLBACK; ret = rpc_transport_notify (this, RPC_TRANSPORT_MSG_RECEIVED, pollin); @@ -2280,8 +2273,7 @@ socket_event_poll_in (rpc_transport_t *this) priv->ot_state = OT_RUNNING; } rpc_transport_pollin_destroy (pollin); - - } while (pollin); + } return ret; } |