signals
signals copied to clipboard
General purpose modern C++ Signal-Slot providing ease of use, flexibility and extremely high performance aiming to replace traditional interfaces in real-time applications
> Safe Recursion and Modification While Iterating Based on your README, I think the code snippet below is meant to work, but I'm encountering some kind of stack corruption or...
Previously, the sig_base destructor did not delete conn_base pointers if they were owned by a connection, but it did null their back references to the signal, which prevented them from...
Run the following code: the assert will fail. This is simply because the lambda is not copied to 'sig', hence its data destructed before sig(10); is reached. By using std::move(lambda),...
If the signal is destroyed after the connected functor, then there is a leak. Example: ``` std::function stdFunction = [] {}; auto* testSignal = new fteng::signal; fteng::connection connection = testSignal->connect(std::move(stdFunction));...
As it looks like the library is not thread safe. For example one thread connects another disconnects, emits, etc. Is this correct?
``` signal sig; void f (int x); void f (const char* str); int main(){ sig.connect(f); //shouldn't be ambiguous } ```
https://www.boost.org/doc/libs/1_61_0/doc/html/signals2/examples.html#signals2.examples.misc blocking slots, ordering slots, combiners
If it is of interest, I've made an attempt at resolving #20. I can't say I'm 100% confident in this code, but the basic test suite passes (with address/undefined behavior...
Remove unnecessary redirection when only 1 or 2 slots are connected