diff options
author | Yaroslav Brustinov <ybrustin@cisco.com> | 2017-02-01 21:13:23 +0200 |
---|---|---|
committer | Yaroslav Brustinov <ybrustin@cisco.com> | 2017-02-02 14:26:12 +0200 |
commit | 781d71db20b0c5acbe940eff1b1ef2f1b765ce54 (patch) | |
tree | 444ef9944a789eaf7d51729d8e84f0b1ab70bda4 /scripts/external_libs/pyzmq-14.5.0/python3/ucs4/64bit/zmq/green/device.py | |
parent | 7b39a77194c736194b40a40fdd19928b98310959 (diff) |
zmq os independent
Change-Id: Iaf5a782be4db26a979a7535454719e8e62b5969a
Signed-off-by: Yaroslav Brustinov <ybrustin@cisco.com>
Diffstat (limited to 'scripts/external_libs/pyzmq-14.5.0/python3/ucs4/64bit/zmq/green/device.py')
-rw-r--r-- | scripts/external_libs/pyzmq-14.5.0/python3/ucs4/64bit/zmq/green/device.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/scripts/external_libs/pyzmq-14.5.0/python3/ucs4/64bit/zmq/green/device.py b/scripts/external_libs/pyzmq-14.5.0/python3/ucs4/64bit/zmq/green/device.py new file mode 100644 index 00000000..4b070237 --- /dev/null +++ b/scripts/external_libs/pyzmq-14.5.0/python3/ucs4/64bit/zmq/green/device.py @@ -0,0 +1,32 @@ +# Copyright (C) PyZMQ Developers +# Distributed under the terms of the Modified BSD License. + +import zmq +from zmq.green import Poller + +def device(device_type, isocket, osocket): + """Start a zeromq device (gevent-compatible). + + Unlike the true zmq.device, this does not release the GIL. + + Parameters + ---------- + device_type : (QUEUE, FORWARDER, STREAMER) + The type of device to start (ignored). + isocket : Socket + The Socket instance for the incoming traffic. + osocket : Socket + The Socket instance for the outbound traffic. + """ + p = Poller() + if osocket == -1: + osocket = isocket + p.register(isocket, zmq.POLLIN) + p.register(osocket, zmq.POLLIN) + + while True: + events = dict(p.poll()) + if isocket in events: + osocket.send_multipart(isocket.recv_multipart()) + if osocket in events: + isocket.send_multipart(osocket.recv_multipart()) |