Tootfinder

Opt-in global Mastodon full text search. Join the index!

@mgorny@social.treehouse.systems
2025-11-22 16:54:04

#Steve the #Jobserver has undergone a major rewrite over the last week. It's now implemented using CUSE, the #FUSE API for character devices. It is using pidfd to track processes acquiring job tokens, and automatically reclaims them if processes die without returning them, preventing dead processes from effectively locking the system jobserver.
The code's still a bit ugly — it's a C-changed-midway-to-C , with libevent for event loops and (still) FUSE's ugly argument parsing.
If someone wants to play with it, the live ebuild is available in #Gentoo as dev-build/steve.
gitweb.gentoo.org/proj/steve.g

@mgorny@social.treehouse.systems
2025-11-29 18:57:27

Honestly, #libfuse3 is the single worst library I have worked with. The API is a random mix of bugs, hacks and historical changes. The documentation is barely existing for the more common API, and practically non-existing for anything else. And upstream's attitude is, basically "lack of documentation is not a bug, feel free to contribute". Because obviously people have nothing better to do than dig through tons of your awful code, figure out how it interacts with the #Linux kernel, and then document it all.
#FUSE