Not bad idea, I'll admit. If I do two-stage construction in X (i.e. a default constructor, another constructor that starts the process and a function that starts the process), it could work. I'll have to test that. Default constructors that block are still evil, though, as it blocks certain things like std::async (learned that the hard way).
Thanks again!
Thanks again!