Ausgabe verursacht Aufhänger



  • Hallo,

    ich programmiere unter Ubuntu, Maverick. Eine Funktion, die ich als Text-
    Progress-Bar verwende, lautet:

    inline
    void progressBar(const string& s,unsigned ith,unsigned siz)
    {
     float fracDone=static_cast<float>(100*ith)/siz;
     cout<<"\r      "<<s<<":[ "<<fixed<<setprecision(2)<<setw(5)<<fracDone<<" % ]       "<<flush<<setprecision(6);
     cout.unsetf ( ios_base::floatfield ); 
    }
    

    Diese Funktion wird häufig aufgerufen, um die Progress-Bar zu aktualisieren.
    Manchmal zu häufig, den zeitweise hört die Applikation für mehrere Sekunden
    zu rechnen auf. In dieser Zeit geht die CPU-Auslastung auf Null zurück und
    es erfolgt keine Ausgabe im (Gnome-)Terminal. Plötzlich läufts dann wieder.

    Sicher, das Problem ist lösbar, indem man nicht so oft ausgibt, aber mich
    würde doch interessieren, was da im System passiert. Läuft da irgendwo ein
    Buffer voll?


Anmelden zum Antworten