This has been discussed and the discussion derailed very quickly ("Go is a joke, my language has it bigger, blah blah".)
Reality is that the Linux Kernel makes a big confusion between processes and threads in the userspace APIs.
Locking to threads is a solution that works but also sucks and defeats the niceties of Go N:M model. But that's the only way: if you use that broken system calls API you should know better.