Thanks Ian. I start some 20 go routines and each routine involves calling C functions and finally all go routines terminate. since each goroutine uses LockOSThread at the begining, all the pthreads spawned as part of goroutines exit too.
Now i see around 34 goroutines, few of them have stack size of 7 MB as seen in /proc/pid/smaps under Private_Dirty. If i limit the stack size, looks like memory is instead taken from heap. I am trying to reproduce with simple example. Any thoughts/comments, Please share. Regards, On Saturday, April 25, 2020 at 6:51:37 AM UTC+5:30, Ian Lance Taylor wrote: > > On Fri, Apr 24, 2020 at 3:39 AM Pavan <sudars...@gmail.com <javascript:>> > wrote: > > > > how do we terminate the go generated internal OS threads. I am > debugging an issue , where RES(memory resdent size) size of. a process > increases as goroutines used increases. > > Iam trying to reduce the threads footprint contribution of process RES , > hence. terminate the additional threads once go routines are completed. > > > > Is there an explicit call, I can make to terminate these processes. > > > > For the OS threads because of C functions calls, I am doing LockOSThread > and skipping unlock, so that they terminate as goroutine terminates. > > > > I see some discussion of this here: > > https://github.com/golang/go/issues/14592 > > but could not find if an explicit call was introduced for application to > call terminate. > > The trick using LockOSThread and returning from the function is > currently the only way to remove an existing thread. In general the > Go runtime assumes that if you needed a thread once, you might need it > again at some point. > > If your memory usage increases without bound, it's fairly unlikely > that the problem is the number of threads. It's much more likely that > you have a memory leak in your Go program. Use the heap profiler. > > 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. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/94003c4b-9e29-4a41-8200-8b1cec062e19%40googlegroups.com.