4 ms·
No, that is incorrect. I think you're confused as to what "blocking syscall" means. A blocking syscall doesn't always block, but it can always block because it
by throwaway09223 4y ago
No, that is incorrect. I think you're confused as to what "blocking syscall" means.
A blocking syscall doesn't always block, but it can always block because its interface is designed to block. Write(2) to a disk file can always block, 100% of the time. It is always considered a blocking syscall, even when it happens to not take very long due to cache optimizations.
Every single blocking syscall can sometimes return right away. This has no bearing on whether it is, or isn't, a potentially blocking call.
- remram 4y agoGGP was objecting to the fact that write always return immediately (writing to memory buffer, no back pressure), and GP said: > Write calls to regular files will block until they are complete I therefore understood "complete" to be the opposite to "only into buffers" in that context, e.g. all the way to disk. That is what I'm objecting to. As to write(2) being a "blocking syscall" in the technical sense, I don't think I agree either. Of course it has that potential, but a write(2) to a regular file does not block in the sense of an interruptible block, or in the sense that O_NONBLOCK or select() can be used to avoid it. It is a "disk sleep" that is generally very different.
- throwaway09223 4y agoBlocking calls often (perhaps usually) don't block. This has nothing to do with the definition. > As to write(2) being a "blocking syscall" in the technical sense, I don't think I agree either. Well, you are wrong. > Of course it has that potential, but a write(2) to a regular file does not block in the sense of an interruptible block, or in the sense that O_NONBLOCK or select() can be used to avoid it. These have nothing whatsoever to do with whether a syscall is blocking or not. You can't use them on wait(2) either, can you? Please stop arguing about things you clearly know nothing about.
- remram 4y ago> Please stop arguing about things you clearly know nothing about. You could have shown your true color outright and saved me the time. You don't care what I mean, you don't care what anybody means, you will just argue semantics to find a possible meaning where you're right. Well congrats.
- throwaway09223 4y ago
- remram 4y agoSure, I will stop argumenting because you told me to. Thanks for the advice given while "you didn't care what I meant", it's as invaluable as you think.