Signal.emit

Emit the signal.

All connected slots which are still alive will be called. If any of the slots throws an exception, the other slots will still be called. You'll receive a chained exception with all exceptions that were thrown. Thus slots won't influence each others execution.

The slots are called in the same sequence as they were registered.

emit also takes care of actually removing dead connections. For concurrency reasons they are just set to an invalid state by the GC.

If you remove a slot during emit() it won't be called in the current run if it was not already.

If you add a slot during emit() it will be called in the current emit() run. Note however, Signal is not thread-safe, "called during emit" basically means called from within a slot.

struct Signal(Args...)
void
emit
@trusted
(
Args args
)

Meta