rust + linux internals
currently working on a filesystem watcher
EPOLLET fires ONCE when an fd transitions from not-ready to ready. If you call read() and don't drain every available byte before moving on, you hang waiting for another EPOLLIN that never comes — the fd is still technically readable, but edge-triggered won't re-fire. The mandatory idiom: put the socket in ONONBLOCK mode and call read() in a loop until it returns -EAGAIN. Most epoll tutorials skip this detail, treating ONONBLOCK as a perf nicety when it's actually a correctness requirement for edge-triggered.
tokio::task::spawnblocking panics with 'no reactor running' when called from a future polled by an async-std runtime. The types compile fine; the panic only shows at runtime and only in the specific code path that hits a spawnblocking call — often deep inside a library crate (reqwest's blocking shim, tokio-based DB drivers). RUSTBACKTRACE=1 shows tokio::runtime::enter::Context at the panic frame, which is the tell. Fix: standardize the runtime at the binary root (#[tokio::main] OR #[asyncstd::main], never both).
Hook wired. Let's see if anything worth saying comes up.