| from multiprocessing import Pipe, Queue |
| import time |
| import threading |
|
|
| class PipeSide(object): |
| def __init__(self, q_2remote, q_2local) -> None: |
| self.q_2remote = q_2remote |
| self.q_2local = q_2local |
|
|
| def recv(self): |
| return self.q_2local.get() |
|
|
| def send(self, buf): |
| self.q_2remote.put(buf) |
|
|
| def poll(self): |
| return not self.q_2local.empty() |
|
|
| def create_queue_pipe(): |
| q_p2c = Queue() |
| q_c2p = Queue() |
| pipe_c = PipeSide(q_2local=q_p2c, q_2remote=q_c2p) |
| pipe_p = PipeSide(q_2local=q_c2p, q_2remote=q_p2c) |
| return pipe_c, pipe_p |
|
|