I'm running a mac cocoa event loop, and calling a go ticker: void StartApp() { [NSAutoreleasePool new]; [NSApplication sharedApplication]; [NSApp setActivationPolicy:NSApplicationActivationPolicyRegular]; [NSApp run]; }
func test() { last := time.Now() ticker := time.NewTicker(time.Second) for range ticker.C { t := time.Now() diff := t.Sub(last) if diff > time.Second*2 { fmt.Println("Tick slow:", diff) } last = t } } func main() { go test() C.StartApp() } currenly just running the go program from the terminal, though I got similar results packaging it into an app. I soon get very long periods between ticker fires: Tick slow: 3.501350114s Tick slow: 5.551485377s This seems to only happen with [NSApp setActivationPolicy:NSApplicationActivationPolicyRegular]; NSApplicationActivationPolicyProhibited and NSApplicationActivationPolicyAccessory don't cause this. I assume it's the event loop in [NSApp run] that is causing this, but don't know how to start making a mac appliction with goroutines and tickers that don't get blocked. Does anybody know how to avoid this and why it is happening? tor -- 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/62325cef-7441-4a7c-abf9-ff58454ff5f4%40googlegroups.com.