Commit Graph

6 Commits (da104e7db04a5aeafb99a7b0ef3ab3cdd08da272)

Author SHA1 Message Date
Alex Trotsenko da104e7db0 Revert "Fix the spurious socket notifications on OS X"
This reverts commit b8e0f7cfc6.
Needs a more testing.

Change-Id: Iff0b2741922cfa8f16fbc3f4ce0f83869d6cd8b6
Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-10-06 08:32:58 +00:00
Alex Trotsenko b8e0f7cfc6 Fix the spurious socket notifications on OS X
Core Foundation Framework forwards notifications about socket activity
through a callback function which called from the run loop. Previous
implementation sets kCFSocketReadCallBack, kCFSocketWriteCallBack to be
automatically re-enabled after they are triggered. With these semantics,
an application need not read all available data in response to a read
notification: a single recv in response to each read notification is
appropriate. If an application issues multiple recv calls in response to
a single notification, it can receive spurious notifications.

To solve this issue, this patch disables automatically reenabling callback
feature. Now, callback gets called exactly once, and is not called again
until manually re-enabled by calling CFSocketEnableCallBacks() just before
entering to wait for the new events.

Task-number: QTBUG-48556
Change-Id: Ia3393c2026230c7b3397cc614758dec1d432535f
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2015-10-02 10:16:53 +00:00
Jani Heikkinen 83a5694dc2 Update copyright headers
Qt copyrights are now in The Qt Company, so we could update the source
code headers accordingly. In the same go we should also fix the links to
point to qt.io.

Outdated header.LGPL removed (use header.LGPL21 instead)

Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing
combination. New header.LGPL-COMM taken in the use file which were
using old header.LGPL3 (src/plugins/platforms/android/extract.cpp)

Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license
combination

Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe
Reviewed-by: Matti Paaso <matti.paaso@theqtcompany.com>
2015-02-11 06:49:51 +00:00
Matti Paaso 974c210835 Update license headers and add new license files
- Renamed LICENSE.LGPL to LICENSE.LGPLv21
- Added LICENSE.LGPLv3
- Removed LICENSE.GPL

Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2
Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
2014-09-24 12:26:19 +02:00
Richard Moe Gustavsen 2e3282d5e4 QCFSocketNotifier: initialize member variable to avoid crash
The function pointer "maybeCancelWaitForMoreEvents" was never
initialized to any value. This caused qt_mac_socket_callback
to call that "function" when it had a non-zero value, which caused
a crash under some circumstances.

Change-Id: I1d31be7b5b7c103fdc0204ffa6e9a5ecbb28d062
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-05-13 13:29:48 +02:00
Morten Johan Sørvig aa5528b050 iOS: Implement socket notifiers.
Create the QCFSocketNotifier class in platform support
which contains shared socket notifier support for
the Cocoa and iOS plugins. Remove the old code from
the Cocoa plugin.

The Cocoa code had one QCocoaEventDispatcher-specific
call: maybeCancelWaitForMoreEvents. Create a forwarding
function that is passed to QCFSocketNotifier.

Change-Id: Ibf9bd4745ba4f577a55f13d0cc00f5ae04447405
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-02-27 23:56:10 +01:00