On Sat, Dec 14, 2019 at 11:51 AM <bucha...@gmail.com> wrote: > > If I understand correctly, that would prevent me from starting any other > goroutines. The following program deadlocks:
That turns out not to be the case. You can start other goroutines. Your program deadlocks because you called time.After when you meant to call time.Tick. Ian > package main > > import ( > "log" > "runtime" > "time" > ) > > func init() { > runtime.LockOSThread() > } > > func main() { > go func() { > for range time.After(time.Second) { > log.Print("tick") > } > }() > > block := make(chan struct{}) > <-block > log.Print("done") > } > > > > > On Saturday, December 14, 2019 at 11:45:53 AM UTC-8, Ian Lance Taylor wrote: >> >> On Sat, Dec 14, 2019 at 11:31 AM <buch...@gmail.com> wrote: >> > >> > I'd really love to get that LockOSThread call out of the main function and >> > hide it away inside a library along with the other internal implementation >> > details. Is that possible? As far as I can tell, it's not possible to >> > ensure that a goroutine runs on the main thread without locking it >> > directly from the main() function. >> >> I don't know if this helps, but you can lock the main goroutine to a >> thread by calling LockOSThread in an init function. >> >> 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/e4ac1c49-0fbf-4f69-8dcc-64d91e7f3536%40googlegroups.com. -- 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/CAOyqgcWc4fyksBqLdGF5swWgX2CY1w89oLPppfeXr9Zi6h68gA%40mail.gmail.com.