Fix bug in the implementation of synchronous network jobs.
authorhausmann <hausmann@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 8 Nov 2007 08:20:27 +0000 (08:20 +0000)
committerhausmann <hausmann@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 8 Nov 2007 08:20:27 +0000 (08:20 +0000)
commitf5618d7d386fcb20f21c33479f1993c5fcda0792
treefccbb952f030b16796911242ee37c0585a9a0163
parent52cd48dd94b129205c14aeeafb437d67c0468825
Fix bug in the implementation of synchronous network jobs.

* George (pmax) reviewed the networking patches and found the following bug (thanks for reviewing)
-    if (jobMode == AsynchronousJob) {
+    if (jobMode == SynchronousJob) {
        add job to synchronous list/hash

* Just applying the above change will lead to crashes because we can finish
  jobs before we started them.

* Avoid these issues by saving all work (starting a job, sending data and
  finishing it) inside one list. JobWork will contain any
  of the above three work types and doWork will just work on this list
  (m_pendingWork). As foreach takes a copy of the list calling started, data
  and finished will not add new work and we gurantee that if we have JobStarted
  it will be in the list before JobData and JobFinished.

* Observation: We might just kill the code to handle sync jobs.

Signed-off-by: Lars Knoll <lars@trolltech.com>
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@27592 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WebKit/qt/Api/qwebnetworkinterface.cpp
WebKit/qt/Api/qwebnetworkinterface_p.h
WebKit/qt/ChangeLog