From: Raimund 'R. J. <ra...@lk...> - 2006-01-15 15:40:25
|
hey folks! Stefan told me that there is a problem with the qucsdigi script not being possible to be killed using the 'cancel' button of the simulation window. i spent some time playing around with the problem and found out this: Currently there is a QProcess::kill() that terminates the qucsdigi script. according the docs it might be better to use tryTerminate() first: http://doc.trolltech.com/qtopia1.7/html/qprocess.html#kill but there still is the problem that only the qucsdigi script itself is killed, not its children. this can be solved by not killing the process itself but the entire process group. this is easily done with kill(2) but i see no QT API for it. it would be possible to do that from the qucsdigi script itself. adding this at the beginning of qucsdigi: trap 'kill 0; exit 0' SIGINT SIGTERM would make it kill all children when it receives the INT or TERM signal (which is what QProcess::kill/tryTerminate should do). for this to work each invocation in the script would have to be changed: echo -n "Doing something ..." $something echo "done" to echo -n "Doing something ..." $something & wait $! echo "done" i still not fully understand why this is neccessary, but that might work. Want me to create a patch for this? Raimund -- ___ ___ _____________ / /| / /_ / ____/ ___/\ Nothing useful for / / / / _ / / __/ / __\/ more than a decade / /_/_/ \/ /_/_/ /_/ {www.|raimi@} /______/__/\._\.____/\.____/\ .org \._____\._\/\._\.___\/\.___\/ |