On Sun, Feb 12, 2017 at 9:57 PM, Luka Napotnik <l...@zeta.si> wrote: > Thanks for the reply. I've created a test program with function F1 that > calls a C function F2. The function F2 then calls a Go function F3. > > I've started the test once with GOMAXPROCS set to 1, and the second time > without an env. (using Go 1.7). There are short pauses between calls and > I've measured the number of system threads used by the process with ps -o > nlwp. > > I found that when running the test with GOMAXPROCS=1, a new thread is always > spawned when the C function F2 calls a Go function, but not if the env. is > not set. Why is that? I know GOMAXPROCS can be ignored in some cases, so I > assumed the GO runtime needed an extra thread for executing function F3, > after it was called from C.
I would guess that the new thread is being spawned to run the system monitor or to run the garbage collector. But without seeing your program I don't actually know. You can check for yourself whether you are running in the same thread easily enough by calling C.gettid. 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.