Don't call the render thread a "main thread" - that causes confusion, since there is also the app thread - the one that creates roSgScreen and it's render thread - that one is even main-er 🙂
You shall NOT block the render thread for a long periods of time, ever. Every call on it is supposed to finish well under 17ms, so that it can redraw the screen 60 times per second. If you "hog" it, you are hurting the UI - and if you do that for long (>3sec), the OS will kill the app. The long-running jobs should be done in a task thread or in the app thread.