2025-12-29 19:32:12
Sät man soziale Unsicherheit, kultiviert man prekäre #Jobs, droht #Arbeitsplatzverlust durch inkompetentes #Management, werden
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
KI-Synchronisation bedroht #Jobs in der #Filmbranche.
Die #Filmindustrie testet #KI-Stimmen für …
15 years remote and counting
#jobs
Worked on some more #Gentoo global #jobserver goodies today.
Firstly, Portage jobserver support patch: #PyTest jobs will also be counted towards total job count.
Again, it's not a perfect solution, but it works reasonably. The plugin still starts -n jobs as specified by the arguments, but it acquired job tokens prior to executing every test, therefore delaying actual testing until tokens are available. It doesn't seem to cause noticeable overhead either.
“At press time Loblaws has drawn crowds with their Black Friday sales, in which groceries are marked down to “the low low price of what groceries cost in 2019!””😂😂🤬
#CanPoli #Canada #CdnPoli #BlackFriday #Beaverton #FoodBank #Jobs #Satire
https://www.thebeaverton.com/2025/11/huge-black-friday-lineup-turns-out-to-just-be-for-food-bank/
#vereinfachteSprache
Klimaschutz ist nicht teuer, er bringt sogar wirtschaftliche Vorteile. Warum sind #Investitionen in erneuerbare Energien wichtig? Welche neuen #Jobs entstehen da…