summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel/qeventdispatcher_symbian.cpp
diff options
context:
space:
mode:
authorAleksandar Sasha Babic <aleksandar.babic@nokia.com>2010-04-12 16:26:23 (GMT)
committerAleksandar Sasha Babic <aleksandar.babic@nokia.com>2010-04-12 16:31:06 (GMT)
commit1db8232bd50874b3db16031b9c8ef13984bf32dd (patch)
treed847e0dcf20357a93e45abf145c55b8addc2821b /src/corelib/kernel/qeventdispatcher_symbian.cpp
parent0b675c07adedb4e8faa20202f947549732e97410 (diff)
downloadQt-1db8232bd50874b3db16031b9c8ef13984bf32dd.zip
Qt-1db8232bd50874b3db16031b9c8ef13984bf32dd.tar.gz
Qt-1db8232bd50874b3db16031b9c8ef13984bf32dd.tar.bz2
Fixed app freeze if switching to offline in middle of HTTP transaction.
This is addition to the fix 4049dc98f1437cbbfdde5bd1ac16a7e69d65d254. It works on SDKs that are setting exception on the sockets when there are irregularities. It makes fix for QT-3274 more complete. Task-number: QT-3274 Reviewed-by: Janne Anttila
Diffstat (limited to 'src/corelib/kernel/qeventdispatcher_symbian.cpp')
-rw-r--r--src/corelib/kernel/qeventdispatcher_symbian.cpp8
1 files changed, 7 insertions, 1 deletions
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);