【发布时间】:2010-05-14 01:21:06
【问题描述】:
我在让 Pipe.send 在此代码中工作时遇到了一些问题。我最终想做的是在外部进程在分叉中运行时向外部进程发送和接收消息。这最终将被集成到与解释器进程对话的 pexpect 循环中。
from multiprocessing import Process, Pipe
from pexpect import spawn
class CockProc(Process):
def start(self):
self.process = spawn('coqtop', ['-emacs-U'])
def run(self, conn):
while True:
if not conn.poll():
cmd = conn.recv()
self.process.send(cmd)
self.process.expect('\<\/prompt\>')
result = self.process.before + self.process.after + " "
conn.send(result)
q, p = Pipe()
proc = CockProc()
proc.start()
proc.run(p)
res = q.recv()
command = raw_input(res + " ")
q.send(command)
res = q.recv()
parent_conn.send('OHHAI')
p.join()
`
【问题讨论】:
标签: python multiprocessing asynchronous