On Fri, Nov 15, 2019 at 7:27 PM Vincent Blanchon <blanchon.vinc...@gmail.com> wrote: > > I was wondering about the behavior of syscalls. It looks like Go always wraps > syscall - whatever blocking or not - with calling entersyscallblock() and > exitsyscall() later. The first one automatically detaches M from the P when > exit tries to acquire the same P or move the G to the global queue. In the > case of non-blocking syscall, why do we have to detach M from the P? > Did I miss something?
For system calls that are absolutely known to never block, like getuid, Go does not use entersyscall/exitsyscall. It just makes the syscall. But most system calls can block. Ian -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CAOyqgcXcdeJmBc5J7SJjxjQwYx%2BBVTe00-BeKkjstMCj2-iUZQ%40mail.gmail.com.