diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2010-04-14 03:47:08 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2010-04-14 03:47:08 (GMT) |
commit | 4af9cc043370846c52ec21cf874696ee650394c1 (patch) | |
tree | d3ac24631fb9e759e399042c65000fa5f0ee6ea9 /src/corelib | |
parent | 0def696a8d569f0895010706fb989e78b25c13c1 (diff) | |
parent | d2d4be2901ef1e377ea77b447632fe29d3adac33 (diff) | |
download | Qt-4af9cc043370846c52ec21cf874696ee650394c1.zip Qt-4af9cc043370846c52ec21cf874696ee650394c1.tar.gz Qt-4af9cc043370846c52ec21cf874696ee650394c1.tar.bz2 |
Merge branch 'qt-4.7-from-4.6' of scm.dev.nokia.troll.no:qt/qt-integration into 4.7-integration
* 'qt-4.7-from-4.6' of scm.dev.nokia.troll.no:qt/qt-integration:
Revert change 07c347f54 from 4.6.
Implement some changes to the AIX xlC mkspec suggested by IBM.
Fixed app freeze if switching to offline in middle of HTTP transaction.
Document Symbian platform security requirements on Qt APIs
Fixed app freeze if switching to offline in middle of HTTP transaction.
CSS: fixes border only affecting the first widget.
Removed QtDeclarative.dll deployment from qt.iby in 4.6 branch.
fix closing state in QLocalSocket on Windows
Fix segfault, if QPixmap::loadFromData() fails
Don't build QtXmlPatterns' command line tools on Symbian.
Diffstat (limited to 'src/corelib')
-rw-r--r-- | src/corelib/io/qprocess.cpp | 18 | ||||
-rw-r--r-- | src/corelib/kernel/qeventdispatcher_symbian.cpp | 8 |
2 files changed, 25 insertions, 1 deletions
diff --git a/src/corelib/io/qprocess.cpp b/src/corelib/io/qprocess.cpp index 63c2ab8..7725ca8 100644 --- a/src/corelib/io/qprocess.cpp +++ b/src/corelib/io/qprocess.cpp @@ -551,6 +551,16 @@ void QProcessPrivate::Channel::clear() interpreter itself (\c{cmd.exe} on some Windows systems), and ask the interpreter to execute the desired command. + \section1 Symbian Platform Security Requirements + + On Symbian, processes which use the functions kill() or terminate() + must have the \c PowerMgmt platform security capability. If the client + process lacks this capability, these functions will fail. + + Platform security capabilities are added via the + \l{qmake-variable-reference.html#target-capability}{TARGET.CAPABILITY} + qmake variable. + \sa QBuffer, QFile, QTcpSocket */ @@ -2006,9 +2016,13 @@ void QProcess::start(const QString &program, OpenMode mode) event loop does not handle the WM_CLOSE message, can only be terminated by calling kill(). + On Symbian, this function requires platform security capability + \c PowerMgmt. If absent, the process will panic with KERN-EXEC 46. + \note Terminating running processes from other processes will typically cause a panic in Symbian due to platform security. + \sa \l {Symbian Platform Security Requirements} \sa kill() */ void QProcess::terminate() @@ -2023,6 +2037,10 @@ void QProcess::terminate() On Windows, kill() uses TerminateProcess, and on Unix and Mac OS X, the SIGKILL signal is sent to the process. + On Symbian, this function requires platform security capability + \c PowerMgmt. If absent, the process will panic with KERN-EXEC 46. + + \sa \l {Symbian Platform Security Requirements} \sa terminate() */ void QProcess::kill() diff --git a/src/corelib/kernel/qeventdispatcher_symbian.cpp b/src/corelib/kernel/qeventdispatcher_symbian.cpp index ca44264..8c96057 100644 --- a/src/corelib/kernel/qeventdispatcher_symbian.cpp +++ b/src/corelib/kernel/qeventdispatcher_symbian.cpp @@ -570,7 +570,13 @@ void QSelectThread::updateActivatedNotifiers(QSocketNotifier::Type type, fd_set * check if socket is in exception set * then signal RequestComplete for it */ - qWarning("exception on %d", i.key()->socket()); + qWarning("exception on %d [will close the socket handle - hack]", i.key()->socket()); + // quick fix; there is a bug + // when doing read on socket + // errors not preoperly mapped + // after offline-ing the device + // on some devices we do get exception + ::close(i.key()->socket()); toRemove.append(i.key()); TRequestStatus *status = i.value(); QEventDispatcherSymbian::RequestComplete(d->threadData->symbian_thread_handle, status, KErrNone); |