Hmm... okay. The thread with the event loop actually has to be the runtime startup thread. Annoying, but understandable.
Adding support to the standard library for checking whether a thread is the runtime startup thread would be very easy. Actually, you can basically do it now: std::thread::current().name() == Some("<main>")
.