On Sun, Feb 8, 2015 at 4:42 PM, Michael Powell <mwpowellhtx@gmail.com> wrote:
On Sun, Feb 8, 2015 at 8:02 AM, Klaim - Joël Lamotte <mjklaim@gmail.com> wrote:
> An executor takes arbitrary tasks as input and only
> guarantee that these tasks will be executed, under some constraints
> defined by the specific executor type.
> A signal dispatch it's call and parametters to a set of observers.

Using the Boost.Signals2 for example, it is easy AFAIK to type-define
a signal, and re-use that type anywhere that signal is required. So a
listener could receive a signal, and subsequently do whatever it
wanted to with that message; dispatch it again, process it,

Yes but the executor would specify how the observers are notified, not how the observer's work is executed (which depends on the observer implementation indeed).
There is an important nuance here.