#Gentoo #jobserver revealed another problem with steve in particular, and (I believe) the jobserver protocol in general: blocking clients are prioritized over polling clients.
The problem is simple: when handling blocking reads, steve can issue a job token immediately. When handling a poll, it merely indicates that a token is available, and the client must issue another read request to get it. So if tokens are scarce and there are both blocking and polling clients running, the former are likely to be taking all the incoming tokens.
My idea of working around this is to implement temporary reservations. If a client polls for a token, we reserve one for it. The reserved token can afterwards be only read by the same client. This way, both blocking and polling clients get a token — the former get it immediately, the latter get it reserved for them. And if there are no tokens available, both get into a single FIFO queue, for a poor man's round-robin (steve also throttles all reads to one token at a time).
However, polls technically don't guarantee that the client will eventually read the token, so we need to handle reservation expirations as well.
My "grow plants everywhere" mod for #Luanti is progressing!
I just built a routine to do blobby weight regions as the intersection of a bunch of parabolas, where weight increases logarithmically from the edge of the parabola with an adjustable edge region, and we use the geometric average of these weight values within the intersection region. Then I spent a few hours hunched over a biomes vornoi diagram approximating different broad regions like "arid_grasses" and "temperate_trees" so you can just name some combination of these regions (with custom per-region multipliers) and have your plant definition apply within those regions. I was using rectangular min/max heat/humidity values before, but they were pretty awkward to work with.
If anyone on here who plays Luanti wants to check it out let me know and I can prioritize publishing what I've got. I've got growth definitions for most but not all VoxeLibre plants and it wouldn't be hard to put them together for another game. No trees yet, but that's pretty much the next thing to work on.