What is the main thread doing while the compute thread is computing? Does it "return" to the caller? Is it blocked? Is it in a message loop (that your wrote)?

Why did you create a thread in the first place? What's the downside of just doing the compute work in-place without creating another thread?

gg