eclipselabs / passerelle

Passerelle, an actor-based process engine based on Ptolemy II
5 stars 3 forks source link

Add concept of "daemon" actors #42

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Passerelle has an algorithm to automatically terminate the execution of a flow. 
(cfr section "Model start-up and shutdown" in 
[PasserelleActorDevelopmentGuide#Model start-up and shutdown] )

This mechanism currently only works reliably with fully connected actor graphs, 
i.e. where the only actors that don't have connected inputs, are finite source 
actors.

With the recent focus on advanced in-model error handling, the use of 
ErrorHandler actors will become mainstream. But ErrorHandlers are typically 
unconnected (on their input side), and thus prevent the automated termination 
of the models in which they're used.

So the engine must be made aware of the fact that such unconnected actors 
should not prevent clean & automated model termination, when all other actors 
have finished their work.

This can be based on the concept of "daemon actors", comparable to daemon 
threads.

Original issue reported on code.google.com by erwin...@gmail.com on 18 Dec 2012 at 1:32

GoogleCodeExporter commented 9 years ago
Remark that for the new event-driven director (ET domain), this is not an 
issue. 

For PN-derived directors (thread-per-actor) it is an issue.

Original comment by erwin...@gmail.com on 18 Dec 2012 at 1:49

GoogleCodeExporter commented 9 years ago
Model termination logic is operational for models incl daemon actors, also with 
model executions with actor exceptions.

Original comment by erwin...@gmail.com on 5 Jan 2013 at 11:14