I'm building webkit-gtk right now. It's one of these messy packages where a few source files need a lot of memory to compile, and ninja can randomly order jobs so that all of them suddenly start compiling simultaneously. So to keep things going smoothly without OOM-ing, I've been dynamically adjusting the available job count via steve the #jobserver.
While doing that, I've noticed that ninja isn't taking new jobs immediately after I increased the job count. So I've started debugging steve, and couldn't find out anything wrong with it. Finally, I've looked into ninja and realized how lazy their code is.
So, there are two main approaches to acquiring job tokens. Either you do blocking reads, and therefore wait for a token to become available, or you use polling to get noticed when it becomes available. Ninja instead does non-blocking reads, and if there are no more tokens available… it waits till one of its own jobs finish.
This roughly means that as other processes release tokens, ninja won't take them until one of its own jobs finish. And if ninja didn't manage to acquire any job tokens to begin with, it is just running a single process via implicit slot, and that process finishing provides it with the only chance to acquire additional tokens. So realistically speaking, as long as there are other build jobs running in parallel, ninja is going to need to be incredibly lucky to ever get a job token, since all other processes will grab the available tokens immediately.
This isn't something that steve can fix.
#Gentoo #NinjaBuild
On Website Technicals - Read nitty-gritty tech updates and daily learnings that keep the Earth Notes site up and running; site stats also. - https://m.earth.org.uk/note-on-site-technicals.html
Chargers' Justin Herbert continues 'to think about' playoff flop vs. Texans with rematch on tap Saturday https://www.nfl.com/news/chargers-justin-herbert-continues-to-think-about-playoff-flop-vs-texans-with-r…
On yesterday's Teaching, Learning, and Everything Else podcast, I talked about AI's impact on the environment and classrooms—and argued that it isn’t reinventing education so much as exposing bad habits we should’ve let go years ago https://www.link…
Sources: OpenAI staff discussed prioritizing sponsored content in ChatGPT when users ask relevant queries and created mockups with ads in sidebars or as pop-ups (The Information)
https://www.theinformation.com/articles/openais-ads-push-starts-taking-shape<…
Findet ihr auch immer so viel Inspiration in der Natur wie wir?
Egal ob mit oder ohne Schnee! ☃️
Wir hoffen, dass ihr über Weihnachten und Neujahr gut regenerieren könnt und wünschen euch fröhliche Feiertage!
---
Bild von wal_172619 auf Pixabay
#schneemann #weihnachten
ChatGPT Atlas hands-on: generally able to interpret instructions and navigate simple menus, but "technical constraints on session length" are a limiting factor (Kyle Orland/Ars Technica)
https://arstechnica.com/features/2025/
49ers' Purdy, Pearsall to remain out vs. Texans https://www.espn.com/nfl/story/_/id/46713156/49ers-rule-brock-purdy-ricky-pearsall-texans-game