Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Depends on the syscall. If you are talking about posix APIs or libc APIs then yes many of them are syscalls. For instance on fuchsia, opening a file requires ipc, but once you open it, read calls are syscalls into the kernel which either return right away because the data is already paged in or otherwise delegate to a filesystem in userspace to provide the data to back the pages it needs. However that said writes are just one asynchronously so it will never block. Network io is done through ipc, but buffers for the socket live in the kernel so you might not need to block for a read to finish, and almost certainly don't block for a write unless there are no more buffers left for that socket. Many other posix syscalls can occur entirely without leaving the process. For instance creating a file descriptor doesn't is an in process concept. A call like uname will require a blocking ipc call but that's not really a problem in practice.

If the caller uses asynchronous native APIs to perform ipc instead of posix APIs then everything can be non blocking.



Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: