I would appreciate it if someone could clarify how does Go runtime operates 
under this circumstances:


Assume that application does some heavy lifting with multiple file 
descriptors (e.g., opening - writing data - syncing - closing), what 
actually happens to Go runtime? Does it block all the goroutines at the 
time when expensive syscall occures (like syscall.Fsync)? Or only the 
calling goroutine is blocked while the others are still operating?


So does it make sense to write programs with multiple workers that do a lot 
of user space - kernel space context switching? Does it make sense to use 
multithreading patterns for disk input?


Minimal example: https://play.golang.org/p/O0omcPBMAJ

-- 
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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to