-
…ill make debugging easier if the error condition does occur.
-
…wise problems could occur where you increment, then fetch and get the wrong number.
-
Very similar to the fixes for Command and Subscriber, adds locking around booleans used as flags for condition variables.
-
Similar to the fixes for subscriber, without holding the waiter_lock_, updating the waiting_done_ flag may cause deadlock. In the deadlock example below, Thread1 is waiting for the response, thread 2 is processing the response and updating the waiter_lock_ variable: ---------------------------------------------------- | Thread 1 | Thread 2 | ---------------------------------------------------- | locks 'waiter_lock_' | | | check 'waiting_done_' | | | | Update 'waiting done' | | | Send notification | | begin waiting for signal | | | *deadlocked* | | ----------------------------------------------------
-
The lock used with the condition variable should always be the same one guarding changes to the condition itself, in these cases, the lock guarding changes to the subscribe and psubscibe data structures. This commit also limits the number of locks held by the subscribeBase function at any one time.
-
Set CMAKE_INSTALL_PREFIX only when not externally set
-
In case of a connection failure (i.e. specify incorrect port number), the main thread would be blocked. This is fixed by setting the condition variables correctly in case of a connection error. The test TestConnectionFailure will hang without this fix.
-
Add EVRUN_ONCE evloop call at the start of the event loop thread, instead of just an EVRUN_NOWAIT call. We want to block until the connection happens, or else we hang on the condition variable wait.
-
Fix logger include path
-
Fix the path for logger.hpp, otherwise make install fails. Change-Id: I50aa9667e512c4fdf6de471dc16312d9eb3dbe30
-
Better timing statistics, better printing, adding pub sub test modes.
-
User can now enable no-wait mode, which chooses whether we use the EVRUN_NOWAIT flag in ev_run. The default is off, so that we don't use 100% CPU. Note added in tutorial to enable when performance is critical. Added to the speed test examples. Bump to 0.2.1. Remove patch number from HISTORY entry - that's what the git log is for. Make note on minor release.
-
Useful for analyzing the delay between signals.
-
Instructions in README, some minor changes to comments.
-
Things are faster with vectors! Also added a note about strToVec and vecToStr, and made them static methods.
-
This enables full support for binary data, with no tokenization needed and all the assumptions that come with that. All of the core methods are changed to accept vector<string>& instead of string&. Ported all examples and tutorial as well.
-
Call Redox::disconnectCallback from processReply
-
This makes more sense logically, and lets the Redox object get default constructed with nothing but the optional logger parameters.