Say, i need to run a bunch of code that is prone to crash so i need to run it on a different process. Typically i'd do it something like this:
pid = fork();
if (pid == -1) {
std::cout << "Cant Spawn New Thread";
exit(0);
} else if (pid == 0) {
std::cout << "Im a child that will crash\n";
char *foo = (char *) 0xffff;
std::cout << foo;
exit(0);
} else {
std::cout << "PID: " << pid << "\n";
}
do {
std::cout << "Waiting for " << pid << " to finish .. \n";
pid_w = waitpid(pid,&status,0);
} while (pid_w == -1);
Obviously i can just use fork in my qt4 application but im wondering can i archive same functionality with any anything that qt provides or any portable manner without resorting to having bunch of architecture ifdefs ?
In any case, im targeting this app to have only pthread implementation but i'd still like to keep things as much close to "native" qt api as possible.
I've tested QThread, and segfaulting in thread crashes the whole application obvously and it seems that QProcess is only targetted to be used when spawning completely different executables. Any other alternatives ?