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.

Reply via email to