digitalmars.D - How do I have multiple threads (of same Thread class) call a delegate
- Enjoys Math (36/36) Aug 25 2017 I have a struct A:
I have a struct A: struct A { this () { b = new B(); b.connect(& receive); } void receive(); } a thread class class B : Thread { this() { onEvent = null; super(& run); } void connect (void delegate eventHandler) { onEvent = eventHandler; } void run() { while (true) { // ... onEvent(); // ... } } void delegate() onEvent; } The result is that receive() is only getting called for the last-most A that was intialized, although run() I've verified is being called on all the right instances of B. I've tried the exact same set up with std.signals and currying the delegate through a class ReceiveEvent since structs can't receive signals. The exact same thing happened. Can't figure this one out... I've tried passing a void* pointer to A along with the delegate and that did nothing. Thanks.
Aug 25 2017