| 25 | |
| 26 | |
| 27 | def _monitored_queue( |
| 28 | in_socket, out_socket, mon_socket, in_prefix=b'in', out_prefix=b'out' |
| 29 | ): |
| 30 | swap_ids = in_socket.type == zmq.ROUTER and out_socket.type == zmq.ROUTER |
| 31 | |
| 32 | poller = zmq.Poller() |
| 33 | poller.register(in_socket, zmq.POLLIN) |
| 34 | poller.register(out_socket, zmq.POLLIN) |
| 35 | while True: |
| 36 | events = dict(poller.poll()) |
| 37 | if in_socket in events: |
| 38 | _relay(in_socket, out_socket, mon_socket, in_prefix, swap_ids) |
| 39 | if out_socket in events: |
| 40 | _relay(out_socket, in_socket, mon_socket, out_prefix, swap_ids) |
| 41 | |
| 42 | |
| 43 | monitored_queue: Callable |