Thanks for reviewing,
On Mon, 27 Jan 2014 10:10:56 +0900
Satoshi Kobayashi <[email protected]> wrote:
>> +from oslo.config import cfg
>> +import socket
>> +import eventlet
>>
>
> Must eventlet be used directly? I feel that it is better to abstract by
> ryu.lib.hub.
Yeah, I addressed two isseus that you pointed out. The following is a
diff:
diff --git a/ryu/services/protocols/vrrp/rpc_manager.py
b/ryu/services/protocols/vrrp/rpc_manager.py
index 3aa03b2..0ba15e1 100644
--- a/ryu/services/protocols/vrrp/rpc_manager.py
+++ b/ryu/services/protocols/vrrp/rpc_manager.py
@@ -15,7 +15,6 @@
from oslo.config import cfg
import socket
-import eventlet
import netaddr
from ryu.base import app_manager
@@ -54,7 +53,7 @@ class RpcVRRPManager(app_manager.RyuApp):
self._kwargs = kwargs
self._peers = []
self._rpc_events = hub.Queue(128)
- self.serverThread = hub.spawn(self._peer_accept_thread)
+ self.server_thread = hub.spawn(self._peer_accept_thread)
self.event_thread = hub.spawn(self._rpc_request_loop_thread)
def _rpc_request_loop_thread(self):
@@ -81,17 +80,19 @@ class RpcVRRPManager(app_manager.RyuApp):
# the peer connection is closed
self._peers.remove(peer)
+ def peer_accept_handler(self, new_sock, addr):
+ peer = Peer(self._rpc_events)
+ table = {
+ rpc.MessageType.REQUEST: peer._handle_vrrp_request,
+ }
+ peer._endpoint = rpc.EndPoint(new_sock, disp_table=table)
+ self._peers.append(peer)
+ hub.spawn(self._peer_loop_thread, peer)
+
def _peer_accept_thread(self):
- server = eventlet.listen(('', CONF.vrrp_rpc_port))
- while True:
- new_sock, address = server.accept()
- peer = Peer(self._rpc_events)
- table = {
- rpc.MessageType.REQUEST: peer._handle_vrrp_request,
- }
- peer._endpoint = rpc.EndPoint(new_sock, disp_table=table)
- self._peers.append(peer)
- hub.spawn(self._peer_loop_thread, peer)
+ server = hub.StreamServer(('', CONF.vrrp_rpc_port),
+ self.peer_accept_handler)
+ server.serve_forever()
def _params_to_dict(self, params, keys):
d = {}
------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today.
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel