diff options
author | Rafael Roquetto <rafael.roquetto@kdab.com> | 2012-02-15 16:52:43 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-02-17 08:46:40 +0100 |
commit | e3363fd945b3ab961fba720ee013533dd8ba2930 (patch) | |
tree | 2ef072dc27562e365eb28652d7cc51f455d12728 /src/corelib/io/qprocess.cpp | |
parent | 147a38faa6afbe616a9e6a123c8dbb5b00e458ef (diff) |
Enables QProcess back on QNX.
Because fork()/vfork() on QNX are not supported on multithreaded applications,
QProcess had been disabled on this platform. The corresponding code has now
been replaced with functions that wrap around spawn().
Change-Id: I46091b7d41f322a5cad07d17893aa929c84941ef
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Diffstat (limited to 'src/corelib/io/qprocess.cpp')
-rw-r--r-- | src/corelib/io/qprocess.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/corelib/io/qprocess.cpp b/src/corelib/io/qprocess.cpp index 0a0097c887..1312e9b55f 100644 --- a/src/corelib/io/qprocess.cpp +++ b/src/corelib/io/qprocess.cpp @@ -520,6 +520,11 @@ void QProcessPrivate::Channel::clear() setWorkingDirectory(). By default, processes are run in the current working directory of the calling process. + \note On QNX, setting the working directory may cause all + application threads, with the exception of the QProcess caller + thread, to momentaneusly freeze, owing to a limitation in + the operating system. + \section1 Synchronous Process API QProcess provides a set of functions which allow it to be used @@ -1433,6 +1438,9 @@ QString QProcess::workingDirectory() const process in this directory. The default behavior is to start the process in the working directory of the calling process. + \note On QNX, this may cause all application threads to + momentaneusly freeze. + \sa workingDirectory(), start() */ void QProcess::setWorkingDirectory(const QString &dir) @@ -1755,7 +1763,7 @@ void QProcess::setProcessState(ProcessState state) exit(). \warning This function is called by QProcess on Unix and Mac OS X - only. On Windows, it is not called. + only. On Windows and QNX, it is not called. */ void QProcess::setupChildProcess() { @@ -2149,6 +2157,9 @@ int QProcess::execute(const QString &program) The process will be started in the directory \a workingDirectory. + \note On QNX, this may cause all application threads to + momentaneusly freeze. + If the function is successful then *\a pid is set to the process identifier of the started process. */ |