Go to file
Thiago Macieira 1814142b7a Use forkfd in QProcess
Replace the existing code in QProcess that dealt with signaling of child
processes exiting with forkfd and spawnfd. The previous code was
convoluted and hard to maintain, having shown its age in the last
year. I've been running it for a year and a half and the new
implementation is definitely an improvement.

This change replaces support for the QNX Neutrino spawn() call with the
POSIX version. We lose the ability to do setsid(), but we gain quite a
few ioctls() that were done to fill in the file descriptor mapping
structure. That's also the only OS for which we have the ability to
thread-safely chdir() before the call to spawnfd().

Another advantage is that forkfd does not require a dedicated thread
running to handle child processes exiting.

Change-Id: I5eb76821dfdb6a8ed2989d7f53b3c31e515c3174
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2015-01-23 19:13:17 +01:00
bin Use the new warning enabling/disabling macros in qtbase 2014-12-03 18:09:17 +01:00
config.tests Add a configure-time check for an IPC support 2015-01-09 10:58:42 +01:00
dist Merge remote-tracking branch 'origin/5.4.0' into 5.4 2014-12-05 11:53:33 +01:00
doc Merge remote-tracking branch 'origin/5.4' into dev 2015-01-21 11:10:14 +01:00
examples D-Bus tray icon: ensure that the image is square before sending 2015-01-23 05:34:11 +01:00
lib Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
mkspecs Merge "Merge remote-tracking branch 'origin/5.4' into dev" into refs/staging/dev 2015-01-21 11:14:34 +01:00
qmake Merge remote-tracking branch 'origin/5.4' into dev 2015-01-21 11:10:14 +01:00
src Use forkfd in QProcess 2015-01-23 19:13:17 +01:00
tests Use forkfd in QProcess 2015-01-23 19:13:17 +01:00
tools Merge remote-tracking branch 'origin/5.4' into dev 2015-01-21 11:10:14 +01:00
util QUnicodeTables: mark all functions as nothrow 2015-01-10 08:42:55 +01:00
.gitattributes Update the git-archive export options 2012-09-07 15:39:31 +02:00
.gitignore Remove qtdemo from gitignore 2014-09-17 12:38:55 +02:00
.qmake.conf Enable -Werror for all of qtbase 2013-09-04 01:50:10 +02:00
.tag Update the git-archive export options 2012-09-07 15:39:31 +02:00
configure Merge remote-tracking branch 'origin/5.4' into dev 2015-01-21 11:10:14 +01:00
configure.bat Update license headers and add new license files 2014-09-24 12:26:19 +02:00
header.BSD Update copyright year in Digia's license headers 2013-01-18 09:07:35 +01:00
header.FDL Update copyright year in Digia's license headers 2013-01-18 09:07:35 +01:00
header.LGPL Update copyright year in Digia's license headers 2013-01-18 09:07:35 +01:00
header.LGPL3 Android: Don't include Apache code under LGPLv2 license 2014-10-02 05:59:17 +02:00
header.LGPL21 Added header.LGPL21 2014-08-23 07:17:35 +02:00
header.LGPL-ONLY Update copyright year in Digia's license headers 2013-01-18 09:07:35 +01:00
INSTALL Doc: Update links in INSTALL file 2014-01-16 20:37:25 +01:00
LGPL_EXCEPTION.txt Change copyrights from Nokia to Digia 2012-09-22 19:20:11 +02:00
LICENSE.FDL Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
LICENSE.LGPLv3 Update license headers and add new license files 2014-09-24 12:26:19 +02:00
LICENSE.LGPLv21 Update license headers and add new license files 2014-09-24 12:26:19 +02:00
LICENSE.PREVIEW.COMMERCIAL Update LICENSE.PREVIEW.COMMERCIAL license 2013-06-03 20:04:26 +02:00
qtbase.pro remove nonsensical claim about contains() 2014-11-13 14:33:16 +01:00
sync.profile ANGLE: upgrade to 2.1~07d49ef5350a 2014-08-05 16:43:22 +02:00