zeroc-ice / datastorm

Data centric pub/sub framework based on Ice
GNU General Public License v2.0
13 stars 7 forks source link

Dispatcher #26

Open iivdam opened 2 weeks ago

iivdam commented 2 weeks ago

Hi, Feature idea when DataStorm is moved into Ice: add an dispatcher api to DataStorm so you can select your own thread for executing the upcalls like Side question: in Ice it is not allowed to use synchronous calls from within the dispatch call, can this be changed in the new Ice version? Regards Emko

bernardnormier commented 2 weeks ago

We reworked the terminology for Ice 3.8:

in Ice it is not allowed to use synchronous calls from within the dispatch call, can this be changed in the new Ice version?

(this is about execute with the new terminology).

As explained in the note, if your custom executor makes blocking calls - in particular other invocations - you can easily self-deadlock.

Ice 3.8 will introduce a dispatch pipeline which may be more appropriate than custom executors for your use-case... it depends very much on what you want to do.

add an dispatcher api to DataStorm so you can select your own thread for executing the upcalls

Which DataStorm upcalls are you referring to?

Thanks, Bernard

iivdam commented 2 weeks ago

Thanks Bernard,

Which DataStorm upcalls are you referring to?

The callbacks which are registered with onConnectedWriters, onSamples etc,

Our software (legacy) is based on a single 'application message-loop' and all async events (timers/received messages) are synchronous handled in the message-loop. For a demo (replacement current middleware stack) i use the dispatch registration as in doc to redirect incoming Ice requests to the application message-loop. It would be welcome if the registered DataStorm callbacks (onConnectedWriters etc) can also in a generic way be redirected to the application message-loop.

regards, Emko