28. 07

Anders kann ich mir die nahezu sofortigen Antworten und Änderungen nicht erklären. Um 15:09 habe ich an die cmus-Mailingliste geschrieben, dass der weltbeste Musikplayer cmus durch ständige nanosleeps und damit verbundene Wakeups meine CPU aus dem Schlaf reißt. Damit verbringt sie weniger Zeit als eigentlich möglich im C3-State, in welchem sie schon sehr tief schläft und dementsprechend weniger Energie verbraucht, was meinem Laptop wieder zu längerer Laufzeit verhilft.

Um 16:43 kam schon die erste Antwort, insofern sehr gut klingend, als dass Timo, der Autor von cmus, selbst das Problem auch sieht:

cmus' threads use nanosleep() to sleep usually 50 ms and then check whether player status has changed etc. I know this is ugly and should be fixed. Some sleeps could be replaced with pthread_cond_wait() quite easily, I think. I'll see what I can do.
Kurz darauf kam auch schon der git-commit, in welchem die angekündigten Änderungen durchgeführt wurden.

Aber es sollte noch besser kommen, 18:11 kam noch eine Ergänzung. Die Änderungen die er vorhin commitet hat haben zu ein paar Verbesserungen geführt, aber das eigentliche Problem der Schleife und checks wird wohl auch verschwinden:

Some time ago I started rewriting player.c to request based (main thread just adds commands to a queue and the producer thread would do the real work) and used pthread_cond as much as possible. But code in the master branch has diverged quite a lot since then (replay gain etc.) and I wasn't sure if the rewrite would be useful so I let the code rot.

Now there's a good reason to starting working on the rewrite again. It takes some time until it's ready to be published. I probably create a new branch for it because the change is quite intrusive.
So machen Bugreporten Spass :D

Tags für diesen Artikel:

Trackbacks


Keine Trackbacks

Kommentare

Ansicht der Kommentare: (Linear | Verschachtelt)

Noch keine Kommentare

Kommentar schreiben


Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.

Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden. Bitte beachten Sie, dass Ihr Browser Cookies unterstützen muss, um dieses Verfahren anzuwenden.
CAPTCHA

Pavatar, Gravatar, MyBlogLog, Monster ID, Pavatar Autoren-Bilder werden unterstützt.
HTML-Tags werden in ihre Entities umgewandelt.
BBCode-Formatierung erlaubt