ImmersiveVRTools.Common.Runtime: UnityMainThreadDispatcher can't be initialized on worker thread
mollstam opened this issue · 2 comments
Just got hit by an exception where code tried to get the .gameObject
property from a worker thread. It was during SafeInvoke(HotReloadFailed, changesAwaitingHotReload);
triggering ProjectWindowReloadStatusIndicatorDrawer.OnHotReloadFailed
which in turn accesses UnityMainThreadDispatcher.Instance
which in SingletonBase<T>
will try to access stuff that should only be accessed on the main thread in case there is no singleton instance. Sorry for oral account of the callstack but my debugger got detached when I was poking around and CBA to repro. 😅
Anyway, maybe the main thread dispatcher needs to eaglery be inited from the main thread (RuntimeInitializeOnLoad?) if its means to be accessed from a worker, or just use another singleton implementation that doesn't hit Unity's API.
Thanks - that could be an option. It may be a while before I get anywhere close to that as it doesn't happen to often (I think?). Feel free to submit PR if you've got a solution in mind already