On Wed, Jun 29, 2016 at 1:28 PM, Tathagata <eventhrz...@gmail.com> wrote: > > I'm measuring the context switch overhead for go routines and I have a > question regarding the netpoller mechanism. I read online that the netpoller > lives in its own thread, and responds to IO events. I thought this meant > that there's a separate machine thread that keeps polling the set of FDs and > requeues go routines whose IO has completed.
That is not how it works. > But looking at the source code, it looks like the netpoller is only > explicitly invoked by the runtime scheduler, when it has nothing else in its > local runqueue. So does a go routine which was initially waiting for IO, > will not be moved to the runqueue until the next time the scheduler is run? That is roughly correct. Note that the scheduler is run every time a goroutine blocks. And note that the sysmon thread ensures that the network is polled at least every 10ms. 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. For more options, visit https://groups.google.com/d/optout.