On Fri, Apr 24, 2020 at 3:39 AM Pavan <sudarshan...@gmail.com> 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/CAOyqgcVuZq5yOCPcfXFfLm5a3JVd4nVL_RjK-%3DxiMfRJe1Z-fg%40mail.gmail.com.

Reply via email to