[kepler-dev] Actor's firing iterations

Edward A. Lee eal at eecs.berkeley.edu
Tue Oct 17 06:00:47 PDT 2006


Not all directors invoke the iterate() method.
That method is meant to provide an efficient shortcut,
where by default all it does is:

    if (prefire()) {
       fire();
       postfire();
    }

Some actors override iterate() to avoid all these method
calls and directly perform all three functions.

In theory, every actor includes in its fire() method either:

    super.fire();

or
    if (_debugging) {
       _debug("Firing");  /* or something like that */
    }

Hence, if you listen to an actor, it will tell you when it fires.

Similarly, in theory, every director reports (via _debug()) when
it fires an actor, so listening to the director should result
in reporting firings.

In practice, not all actor writers or director writers pay
sufficient attention to the debug listeners, so the information
may be incomplete.  If you find places that these calls are missing,
we consider them bugs and will fix them.

Edward

At 03:59 PM 10/16/2006, Efrat Frank wrote:
>Hi Christopher,
>
>I'm trying to follow up on actors' firing iterations. I saw that for the
>statically scheduled directors I can get information from the 'iterate'
>method of AtomicActor, and for PN from the ProcessThread run.
>
>Does this cover all the directors? Are there any directors that report
>actors' firing iterations in other mehtods?
>
>Thanks,
>Efrat
>_______________________________________________
>Kepler-dev mailing list
>Kepler-dev at ecoinformatics.org
>http://mercury.nceas.ucsb.edu/ecoinformatics/mailman/listinfo/kepler-dev

------------
Edward A. Lee
Chair of EECS and Robert S. Pepper Distinguished Professor
231 Cory Hall, UC Berkeley, Berkeley, CA 94720-1770
phone: 510-642-0253, fax: 510-642-2845
eal at eecs.Berkeley.EDU, http://ptolemy.eecs.berkeley.edu/~eal  



More information about the Kepler-dev mailing list