Re:Three New Open Source Container Utilities
by jitl on Thursday July 06, 2017 @02:41AM
(#14708570)
I recently came up against this when deciding on a language to implement a POSIX-api backed utility.
Go does not have the fork(2) POSIX API. This makes it much more difficult to spawn a process with precise POSIX semantics.
Another issue is that when a goroutine (a fiber running in an OS thread) makes a syscall that blocks, that goroutine might be un-scheduled and then later resumed on a different OS thread. If your syscall is one that operates on the call-in OS thread, this could cause poor results. I think there are some mitigation strategies, but these two issues make syscall programming frustrating in Go.
Go does not have the fork(2) POSIX API. This makes it much more difficult to spawn a process with precise POSIX semantics.
Another issue is that when a goroutine (a fiber running in an OS thread) makes a syscall that blocks, that goroutine might be un-scheduled and then later resumed on a different OS thread. If your syscall is one that operates on the call-in OS thread, this could cause poor results. I think there are some mitigation strategies, but these two issues make syscall programming frustrating in Go.