After reading:

http://www.mail-archive.com/jess-users@sandia.gov/msg04691.html

the answer to a) and b) are pretty clear - sorry for the redundant
questions.

alan

> -----Original Message-----
> From: Alan Moore 
> Sent: Thursday, September 19, 2002 2:15 PM
> To: '[EMAIL PROTECTED]'
> Subject: RE: JESS: How to pause rule firing?
> 
> 
> > 2) Have a rule that calls wait() on a well-known lock object when it
> > sees a "pause" fact. Here I'll use fetch to get it, but it could be
> > from a Java method, a static member, etc.
> > 
> >         (defrule pause
> >                 ?p <- (pause)
> >                 =>
> >                 (synchronized (fetch LOCK) ((fetch LOCK) wait))
> >                 (retract ?p))
> > 
> 
> This is good. Another variation would be to assert the pause 
> fact with an
> external address of the lock object to wait on so you would have:
> 
> (defrule pause
>    ?p <- (pause ?resume)
> =>
>    (synchronized ?resume (?resume wait))
>    (retract ?p)
> )
> 
> NB: I try to stay away from (store) and (fetch).
> 
> This raises some questions that push my understanding of 
> jess. If thread #1
> activates this rule and waits on the RHS, what happens if:
> 
> a) other threads call run() or runUntilHalt()
> 
> How can I guarantee that all possible threads will block? My 
> current system
> doesn't have this scenario but I am just trying to understand 
> how this could
> be generalized into a "complete engine pause", not just a 
> single thread
> pause.
> 
> b) other threads fire property change events matched by LHS patterns.
> 
> I assume activations will be added/removed as necessary but 
> no rules fire
> unless run() is called by another thread.
> 
> > 3) When thread 2 wants thread 1 to pause, it uses
> > 
> >         rete.store("LOCK", wellKnownObject);
> >         rete.assertString("(pause)");
> > 
> > 4) To wake it up, #2 just says
> > 
> >         synchronized (wellKnownObject) {
> >                 wellKnownObject.notify();
> >         }
> > 
> > This doesn't seem to complicated to me -- what do you think?
> 
> No, it is very simple. I just need some time to wrap my head 
> around it. I'm
> sure I will be back with more questions once the fog lifts.
> 
> Thanks for the help!
> 
> alan
> 
> --------------------------------------------------------------------
> To unsubscribe, send the words 'unsubscribe jess-users 
> [EMAIL PROTECTED]'
> in the BODY of a message to [EMAIL PROTECTED], NOT to the list
> (use your own address!) List problems? Notify 
> [EMAIL PROTECTED]
> --------------------------------------------------------------------
> 

--------------------------------------------------------------------
To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
in the BODY of a message to [EMAIL PROTECTED], NOT to the list
(use your own address!) List problems? Notify [EMAIL PROTECTED]
--------------------------------------------------------------------

Reply via email to