Je rencontre des problèmes pour que Pipe.send fonctionne dans ce code. Ce que je voudrais finalement faire est d'envoyer et de recevoir des messages vers et à partir du processus étranger pendant qu'il s'exécute dans une fourchette. Cela va finalement être intégré dans une boucle pexpect pour parler aux processus d'interprétation.Envoyer et recevoir async sur multiprocessing.Pipe() en Python
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()
`
+1 merci j'avais cette même question, je me suis accroché sur .poll() – John