summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2016-01-25Prevent recursive processing of event queue in EventLoopTobias Markmann
The old event loop had this protection, however it is missing in the new design. This adds this protection again as some external event loop implementations, e.g. the Qt event loop, directly process their event queue from an event handler. Test-Information: Unit and system tests pass on OS X 10.11.3. Change-Id: I10ce7160c3f201e2d5f53ab8289ddde1eb3262e8
2015-12-17Process multiple events at once inside EventLoopTobias Markmann
Test-Information: Unit and integration tests pass on OS X 10.10.5 and Debian 8.2. UI remains responsive when transferring a file between two Swift instances. Change-Id: I7841347a5d6c55121e02e274a7087a2fc200f879
2015-11-19Redesign event loops to be thread-safe and deterministicTobias Markmann
The new event loop design has a single event queue that is synchronized to protect against data races. The removal of events in the queue by EventOwner is deterministic. Test-Information: All unit and integration tests with TSAN and cxxflags=-DBOOST_SP_USE_PTHREADS on Debian 8.2 pass without reports. Multiple Swiften/QA/ClientTest/ClientTest runs under different CPU stress caused no TSAN reports on Debian 8.2. Swift itself only causes TSAN reports related to Qt itself, out of our control, and most likely false positives, i.e. TSAN not detecting the synchronization method inside Qt correctly. Unit tests pass without errors and successfully connected to Slimber on OS X 10.10.5. Change-Id: Ia1ed32ac2e758c5b9f86e0dac21362818740881e
2014-12-15Update Copyright in SwiftenKevin Smith
Change-Id: I94ab4bbb68c603fe872abeb8090575de042f5cb4
2013-08-16Fix double includes in EventLoop.Remko Tronçon
Change-Id: Icd510a0737c46618acedc311b1b4e24b72d6673d
2013-08-16Merge branch 'swift-2.x'Remko Tronçon
Change-Id: I36e82dfe1ec492df719bcc85e5549fb4013a6723
2013-08-16Added missing lock_guard include.Remko Tronçon
Change-Id: I1ea6c42292b7c3b5f0ecdc1395b9c8e8cf17a6b9
2013-02-12Include boost::lock_guard include.Remko Tronçon
Change-Id: Iad90ae18911116603888ee5dc332151c24a7cf60
2012-12-23Replace functors and for loops by boost::lambdas.Remko Tronçon
Change-Id: I6d2364dc85464f238d95978793f35953a2947799
2011-10-05Don't crash with label item without a labelKevin Smith
2011-04-30Replace #icnlude "" by #include <> in Swiften.Remko Tronçon
2011-04-18Assert on empty event in event loop.Remko Tronçon
2011-03-28Catch all exceptions in event loop.Remko Tronçon
2011-01-22Some small event loop tweaks.Remko Tronçon
2011-01-18Cleaned up some code.Remko Tronçon
2010-10-27Remove MainEventLoop singleton.Remko Tronçon
The event loop now needs to be explicitly passed to clients using it.
2010-10-07Avoid recursive calling of event callbacks.Remko Tronçon
When EventLoop::handleEvent() was called recursively (i.e. by calling processEvents() from a slot), weird things happened, especially in the XMPP parser (assertion triggers, parse error from server, ...). Now, callbacks are put in a queue handled by the topmost handleEvent. Resolves: #592, #568
2010-04-08Added copyrights to Swiften.Kevin Smith
2010-03-28Moving submodule contents back.Remko Tronçon
2010-03-28Removing submodules.Remko Tronçon
2010-03-28Moved Swiften to a separate module.Remko Tronçon
2009-07-15Use shared_ptr for EventLoop owners.Remko Tronçon
2009-06-01Import.Remko Tronçon