On Monday, June 20, 2016 at 9:31:08 AM UTC-7, Ian Lance Taylor wrote: > > On Sat, Jun 18, 2016 at 10:17 PM, Manohar Kumar <forwar...@gmail.com > <javascript:>> wrote: > > > > Is it possible that a net.ListenTCP or ListenUDP call can result in new > go > > routine/OS thread creation ? I guess not all system calls result in a > new go > > routine (and OS thread if necessary) creation. But ListenTCP & UDP does > many > > things underneath and its not clear if it can lead to new go routine > > creation. > > ListenTCP and ListenUDP will not create new goroutines or threads. > But those calls just create new listeners; you probably meant to ask > about the AcceptTCP and ReadFrom/WriteTo methods. Those methods will > not normally create new goroutines. However, they may block, and that > may cause the Go runtime to create a new thread. >
Thanks. How about Dial() ? Since Dial to a TCP destination requires a connection to be established I think it can lead to new go routine creation. Can that happen for Dial to an UDP destination as well (which shouldn't trigger any network transaction)? This code runs on a root network namespace and some other child network namespaces. Its not a desirable behavior to have new OS created while its executing in the child namespaces. -Manohar. > > I am mainly interested in Linux and have to make these calls in a part > of > > the code where new OS thread creation isn't desirable. Please note that > > changing that aspect of the design itself is not an option for me. > > The Go runtime is free to create new OS threads at any time. You can > not reasonably use Go under the restrictions you describe. > > 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.