3 ms·
Filesystem cache may make latency unpredictable, but it won't make open() unexpectedly fail with ECONNREFUSED. Most programs barely handle ENOENT, let alone EIN
by pzmarzly 3y ago
Filesystem cache may make latency unpredictable, but it won't make open() unexpectedly fail with ECONNREFUSED. Most programs barely handle ENOENT, let alone EINTR.
Also, how do you do async fstat and mkdir in Linux? I don't see it in manpages.
AFAIK Plan9 answers to that was to not implement POSIX interfaces, and instead all I/O looked like RPC calls. This is generally a good design idea, but it's hard to sell an OS where all existing software will have to be rewritten for.
- GoblinSlayer 3y agoConceptually it's possible: async fstat sets pending read, then epoll could return read flag when it completes, after that fstat completes without delay.
- the8472 3y ago> Also, how do you do async fstat and mkdir in Linux? I don't see it in manpages. io_uring. and a virtual filesystem may have to serve multiple concurrent requests from several threads. so even if individual IO calls are blocking in the aggregate they still have to be interleaved.