On Mon, 27 Jan 2014 11:24:38 +0900 (JST)
FUJITA Tomonori <[email protected]> wrote:

> 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 = {}

I've folded this and applied. Thanks!

------------------------------------------------------------------------------
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

Reply via email to