In Twisted Was ist der Unterschied zwischen processExited und processEnded?

8

Wie der Titel sagt, was ist der Unterschied zwischen diesen beiden Funktionen in ProcessProtocol-Klassen? Die Dokumentation ist ein bisschen spärlich wann sollte man statt einer anderen verwendet werden?

Vorzugsweise suche ich nach Anwendungsbeispielen, die das demonstrieren.

    
kmelva 13.04.2012, 13:14
quelle

1 Antwort

8

Ich denke, die Dokumentation ist in diesem Punkt etwas spärlich. Wenn kein solches Ticket existiert, können Sie ein Ticket einreichen, um die API-Dokumentation zu verbessern.

processExited wird aufgerufen, wenn ein Prozess exited im formalen Prozessmanagement-Sinn ist, d. h. namens exit() oder zurückgegeben von main() .

Das ist jedoch nicht immer das, was Sie wollen. Manchmal erzeugt ein Prozess einen Subprozess, gibt seine stdin und stdout aus, delegiert die Verantwortung für die Erzeugung der Daten, die Sie (der launige Elternprozess in diesem Fall) wollen, und dann exit() s, weil die Einrichtung abgeschlossen ist.

processEnded wird aufgerufen, wenn ein Prozess sowohl als auch beendet hat und alle I / O-Operationen seiner verwalteten Dateideskriptoren ( stdin , stdout und childFDs ) abgeschlossen hat sind geschlossen. Wenn Sie etwas erzeugen, nur um seine Ausgabe zu lesen, ist dies die Benachrichtigung, die Sie wahrscheinlich interessieren.

    
Glyph 13.04.2012, 16:48
quelle

Tags und Links