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