Konstruktoren und Objekte in andern Klassen
@sandra84: Passiert das beim ersten Kommando das gesendet wird? Kann es sein, dass die "Gegenseite" die Pipes nach einem Kommando, oder vielleicht nach einer gewissen Zeit, schliesst und man über die dann einfach kein zweites Kommando absetzen kann!?
hmmm ja also in der Theorie ja..
Es wird das kommando "quit" gesendet und der task test.out beendet. Aber die sendCommand macht ja wieder Popen etc. (was ich eigentlich der Meinung bin, dass es das gar nicht braucht wg. dem Konstruktor). Hatte das Testhalber nochmal in die sendCommand geschrieben um ebend das mit dem "quit" etc. zu umgehen.
Es wird das kommando "quit" gesendet und der task test.out beendet. Aber die sendCommand macht ja wieder Popen etc. (was ich eigentlich der Meinung bin, dass es das gar nicht braucht wg. dem Konstruktor). Hatte das Testhalber nochmal in die sendCommand geschrieben um ebend das mit dem "quit" etc. zu umgehen.
aha! also wenn ich das ganze nicht kill.. dann klappts auch mit der pipe.. warum er aber die sendCommand nicht einfach ohne ein neues Klassen-Objekt nimmt versteh ich nicht. Das Objekt ist ja noch vorhanden zu dem Zeitpunkt und die sendCommand macht ja eine eigene auf.
@sandra84: Ich bin jetzt etwas verwirrt von dem Quelltext, denn in der `__init__()` wird ja auch schon einmal `self.client` gebunden. Und dann nicht verwendet?
Und wie sieht der komplette Traceback aus? Denn die vorletzte Zeile wie Du sagst, kann ja nicht der Punkt für einen IOError sein, höchstens auf dem Aufrufstack dahin der Auslöser.
Und wie sieht der komplette Traceback aus? Denn die vorletzte Zeile wie Du sagst, kann ja nicht der Punkt für einen IOError sein, höchstens auf dem Aufrufstack dahin der Auslöser.
ne.. also ja..
ich habs mal Testhalber in die sendCommand reingeschrieben. Eigentlich sollte es nur in der init stehen.
Ach der mist ist.. ich kanns nicht so ohne weiteres kopieren also den Traceback..
self.worker.sendCommand("read 34")
self.client.stdin.write(cmd + "\n")
IOError: [Errno 32] Broken pipe
wie gesagt, der Fehler ist nun weg, da ich den Prozess der test.out nicht mehr kill, aber
mir will nicht in den Kopf warum das überhaupt ein Problem dargestellt hatte, da die sendCommand eigentlich wieder alles "gestartet" hat.
ich habs mal Testhalber in die sendCommand reingeschrieben. Eigentlich sollte es nur in der init stehen.
Ach der mist ist.. ich kanns nicht so ohne weiteres kopieren also den Traceback..
self.worker.sendCommand("read 34")
self.client.stdin.write(cmd + "\n")
IOError: [Errno 32] Broken pipe
wie gesagt, der Fehler ist nun weg, da ich den Prozess der test.out nicht mehr kill, aber
mir will nicht in den Kopf warum das überhaupt ein Problem dargestellt hatte, da die sendCommand eigentlich wieder alles "gestartet" hat.