QProcess füllt RAM und lässt Programm einfrieren



  • Hallo zusammen,

    um eine embedded Hardware zu testen, belaste ich diese dauerhaft mit 100 % CPU auslastung. Nach etwa 5 Minuten bei 100 % friert mir mein Programm und die serielle Konsole ein. Ich habe mit top beobachtet, dass in diesem Fall die Speicherbelegung während der 5 Minuten auf 100% steigt und dann verständlicherweiße auch nichts mehr geht.

    @
    void MainWindow::CPUauf100()
    {
    // Startet Prozess mit Priorität 19 (minimal) um die CPU maximal auszulasten, aber der GUI Vorrang zu lassen:
    CPU100_process->start("nice -n 19 cat /dev/urandom > /dev/null");
    // cat schreibt den Inhalt von /dev/urandom nach /dev/null. /dev/null verwirft alle Daten, die dorthin geschrieben werden
    }

    void MainWindow::CPUauf0()
    {
    // Killt den Prozess, der die CPU maximal auslastet:
    CPU100_process->kill();
    }
    @

    Ich vermute, dass QProcess eine Pipe öffnet und diese überfüllt wird und so den RAM vollballert. Wie kann ich den RAM leeren ohne meine Prozessdaten mit zu löschen oder die Pipe reseten?

    PS: Auch nach dem kill bleibt der Speicher von meinem Programm belegt.



  • Ist der Prozess denn noch aktiv? Was zeigt top an?


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.