[kepler-dev] Threaded actors in the DE Domain

ian.brown@hsbcib.com ian.brown at hsbcib.com
Fri Sep 14 02:54:44 PDT 2007

Edward, thanks for looking into this. Due to sitting behind a proxy, I
cannot access the cvs repository directly and so rely on the nightly build
source snapshots. It appears the change did not make it into the one from
last night, so it will be Monday before I can try this out and get back to


             "Edward A. Lee"                                               
             <eal at eecs.berkele                                             
             y.edu>                                                     To 
                                       ian.brown at hsbcib.com                
             13/09/2007 19:23                                           cc 
             Mail Size: 8762           kepler-dev at ecoinformatics.org       
                                       Re: [kepler-dev] Threaded actors in 
                                       the DE Domain                       
                                       Investment Banking Europe - IBEU    

But setDeferringChangeRequests(false) is only one of the ways that
change requests can be executed.  They are also executed in
on every iteration of the model.

I suspect that I have found a bug in DEDirector that would cause
it to block execution of change requests. Basically, it sits in
a loop waiting for events to appear on the event queue (or waiting
for real time to pass if you have synchronizeToRealTime set), but
while in this loop, it essentially ignores calls to its stopFire()
method. These calls occur on each changeRequest, and are meant
to cause the director to return control to the Manager.

I've implemented and checked in a fix in DEDirector.
Can you try removing your executeChangeRequests() call and
see if this solves the problem?


At 10:01 AM 9/13/2007, ian.brown at hsbcib.com wrote:
>Edward, when I press the run button, ptolemy.actor.Manager.execute() is
>called ... and this runs the model until it is stopped. At the start, the
>initialize() method of this class calls setDeferringChangeRequests(true).
>This basically blocks any change requests.
>setDeferringChangeRequests(false) is only called in the finally clause of
>the execute() method once the model has been stopped.

HSBC Bank plc may be solicited in the course of its placement efforts for a
new issue, by investment clients of the firm for whom the Bank as a firm
already provides other services. It may equally decide to allocate to its
own proprietary book or with an associate of HSBC Group. This represents a
potential conflict of interest. HSBC Bank plc has internal arrangements
designed to ensure that the firm would give unbiased and full advice to the
corporate finance client about the valuation and pricing of the offering as
well as internal systems, controls and procedures to identify and manage
conflicts of interest.

HSBC Bank plc
Registered Office: 8 Canada Square, London E14 5HQ, United Kingdom
Registered in England - Number 14259
Authorised and regulated by the Financial Services Authority.


This transmission has been issued by a member of the HSBC Group
"HSBC" for the information of the addressee only and should not be
reproduced and/or distributed to any other person. Each page
attached hereto must be read in conjunction with any disclaimer
which forms part of it. Unless otherwise stated, this transmission
is neither an offer nor the solicitation of an offer to sell or
purchase any investment. Its contents are based on information
obtained from sources believed to be reliable but HSBC makes no
representation and accepts no responsibility or liability as to its
completeness or accuracy.

More information about the Kepler-dev mailing list