From 28a500b7b636ae53a56356dcfd327ee658bbb534 Mon Sep 17 00:00:00 2001 From: gucio321 <73652197+gucio321@users.noreply.github.com> Date: Sat, 5 Feb 2022 11:50:44 +0100 Subject: [PATCH] mainthread: add IsRunning method fix #3 --- mainthread.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/mainthread.go b/mainthread.go index 7964520..3dd7932 100644 --- a/mainthread.go +++ b/mainthread.go @@ -11,16 +11,14 @@ import ( // The default value is 16 and should be good for 99% usecases. var CallQueueCap = 16 -var ( - callQueue chan func() -) +var callQueue chan func() func init() { runtime.LockOSThread() } func checkRun() { - if callQueue == nil { + if !IsRunning() { panic(errors.New("mainthread: did not call Run")) } } @@ -48,6 +46,12 @@ func Run(run func()) { } } +// IsRunning returns true if the Run function has already +// been called and is running. +func IsRunning() bool { + return callQueue != nil +} + // CallNonBlock queues function f on the main thread and returns immediately. Does not wait until f // finishes. func CallNonBlock(f func()) {