|
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 |
|
|