25 lines
593 B
Python
25 lines
593 B
Python
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
|