Signed-off-by: YAMAMOTO Takashi <[email protected]>
---
 ryu/topology/dumper.py   | 43 +++++++++++++++++++++----------------------
 ryu/topology/switches.py | 14 +++++++-------
 2 files changed, 28 insertions(+), 29 deletions(-)

diff --git a/ryu/topology/dumper.py b/ryu/topology/dumper.py
index 8aafc62..f2b76df 100644
--- a/ryu/topology/dumper.py
+++ b/ryu/topology/dumper.py
@@ -15,12 +15,11 @@
 
 
 import logging
-import gevent
-import gevent.queue
 import time
 
 from ryu.base import app_manager
 from ryu.controller.handler import set_ev_handler
+from ryu.lib import hub
 from ryu.topology import event
 
 LOG = logging.getLogger(__name__)
@@ -35,14 +34,14 @@ class DiscoveryEventDumper(app_manager.RyuApp):
 
         # For testing when sync and async request.
 #        self.threads.append(
-#            gevent.spawn_later(0, self._switch_request_sync, 5))
+#            hub.spawn(self._switch_request_sync, 5))
 #        self.threads.append(
-#            gevent.spawn_later(0, self._switch_request_async, 10))
+#            hub.spawn(self._switch_request_async, 10))
 #
 #        self.threads.append(
-#            gevent.spawn_later(0, self._link_request_sync, 5))
+#            hub.spawn(self._link_request_sync, 5))
 #        self.threads.append(
-#            gevent.spawn_later(0, self._link_request_async, 10))
+#            hub.spawn(self._link_request_async, 10))
 
         self.is_active = True
 
@@ -78,19 +77,19 @@ class DiscoveryEventDumper(app_manager.RyuApp):
         while self.is_active:
             request = event.EventSwitchRequest()
             LOG.debug('switch_request sync %s thread(%s)',
-                      request, id(gevent.getcurrent()))
+                      request, id(hub.getcurrent()))
             reply = self.send_request(request)
             LOG.debug('switch_reply sync %s', reply)
             if len(reply.switches) > 0:
                 for sw in reply.switches:
                     LOG.debug('  %s', sw)
-            gevent.sleep(interval)
+            hub.sleep(interval)
 
     def _switch_request_async(self, interval):
         while self.is_active:
             request = event.EventSwitchRequest()
             LOG.debug('switch_request async %s thread(%s)',
-                      request, id(gevent.getcurrent()))
+                      request, id(hub.getcurrent()))
             self.send_event(request.dst, request)
 
             start = time.time()
@@ -100,16 +99,16 @@ class DiscoveryEventDumper(app_manager.RyuApp):
                 if time.time() > start + i:
                     i += 1
                     LOG.debug('  thread is busy... %s/%s thread(%s)',
-                              i, busy, id(gevent.getcurrent()))
+                              i, busy, id(hub.getcurrent()))
             LOG.debug('  thread yield to switch_reply handler. thread(%s)',
-                      id(gevent.getcurrent()))
+                      id(hub.getcurrent()))
 
             # yield
-            gevent.sleep(0)
+            hub.sleep(0)
 
             LOG.debug('  thread get back. thread(%s)',
-                      id(gevent.getcurrent()))
-            gevent.sleep(interval - busy)
+                      id(hub.getcurrent()))
+            hub.sleep(interval - busy)
 
     @set_ev_handler(event.EventSwitchReply)
     def switch_reply_handler(self, reply):
@@ -122,19 +121,19 @@ class DiscoveryEventDumper(app_manager.RyuApp):
         while self.is_active:
             request = event.EventLinkRequest()
             LOG.debug('link_request sync %s thread(%s)',
-                      request, id(gevent.getcurrent()))
+                      request, id(hub.getcurrent()))
             reply = self.send_request(request)
             LOG.debug('link_reply sync %s', reply)
             if len(reply.links) > 0:
                 for link in reply.links:
                     LOG.debug('  %s', link)
-            gevent.sleep(interval)
+            hub.sleep(interval)
 
     def _link_request_async(self, interval):
         while self.is_active:
             request = event.EventLinkRequest()
             LOG.debug('link_request async %s thread(%s)',
-                      request, id(gevent.getcurrent()))
+                      request, id(hub.getcurrent()))
             self.send_event(request.dst, request)
 
             start = time.time()
@@ -144,16 +143,16 @@ class DiscoveryEventDumper(app_manager.RyuApp):
                 if time.time() > start + i:
                     i += 1
                     LOG.debug('  thread is busy... %s/%s thread(%s)',
-                              i, busy, id(gevent.getcurrent()))
+                              i, busy, id(hub.getcurrent()))
             LOG.debug('  thread yield to link_reply handler. thread(%s)',
-                      id(gevent.getcurrent()))
+                      id(hub.getcurrent()))
 
             # yield
-            gevent.sleep(0)
+            hub.sleep(0)
 
             LOG.debug('  thread get back. thread(%s)',
-                      id(gevent.getcurrent()))
-            gevent.sleep(interval - busy)
+                      id(hub.getcurrent()))
+            hub.sleep(interval - busy)
 
     @set_ev_handler(event.EventLinkReply)
     def link_reply_handler(self, reply):
diff --git a/ryu/topology/switches.py b/ryu/topology/switches.py
index d507506..5f75cae 100644
--- a/ryu/topology/switches.py
+++ b/ryu/topology/switches.py
@@ -14,7 +14,6 @@
 # limitations under the License.
 
 import logging
-import gevent
 import struct
 import time
 import json
@@ -26,6 +25,7 @@ from ryu.controller import ofp_event
 from ryu.controller.handler import set_ev_cls
 from ryu.controller.handler import MAIN_DISPATCHER, DEAD_DISPATCHER
 from ryu.exception import RyuException
+from ryu.lib import hub
 from ryu.lib.mac import DONTCARE, haddr_to_str
 from ryu.lib.dpid import dpid_to_str, str_to_dpid
 from ryu.lib.port_no import port_no_to_str
@@ -453,17 +453,17 @@ class Switches(app_manager.RyuApp):
         if self.link_discovery:
             self.install_flow = CONF.install_lldp_flow
             self.explicit_drop = CONF.explicit_drop
-            self.lldp_event = gevent.event.Event()
-            self.link_event = gevent.event.Event()
-            self.threads.append(gevent.spawn_later(0, self.lldp_loop))
-            self.threads.append(gevent.spawn_later(0, self.link_loop))
+            self.lldp_event = hub.Event()
+            self.link_event = hub.Event()
+            self.threads.append(hub.spawn(self.lldp_loop))
+            self.threads.append(hub.spawn(self.link_loop))
 
     def close(self):
         self.is_active = False
         if self.link_discovery:
             self.lldp_event.set()
             self.link_event.set()
-            gevent.joinall(self.threads)
+            hub.joinall(self.threads)
 
     def _register(self, dp):
         assert dp.id is not None
@@ -745,7 +745,7 @@ class Switches(app_manager.RyuApp):
                 self.send_lldp_packet(port)
             for port in ports:
                 self.send_lldp_packet(port)
-                gevent.sleep(self.LLDP_SEND_GUARD)      # don't burst
+                hub.sleep(self.LLDP_SEND_GUARD)      # don't burst
 
             if timeout is not None and ports:
                 timeout = 0     # We have already slept
-- 
1.8.0.1


------------------------------------------------------------------------------
Minimize network downtime and maximize team effectiveness.
Reduce network management and security costs.Learn how to hire 
the most talented Cisco Certified professionals. Visit the 
Employer Resources Portal
http://www.cisco.com/web/learning/employer_resources/index.html
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to