Re: Strange lock-ups with simple E program

Kevin Reid <[email protected]>
Newsgroups gmane.comp.lang.e.general
Message-ID <[email protected]>
On Jul 24, 2009, at 9:53, Thomas Leonard wrote:

> def obj := seedVat.run("def test() { return null }")[0]

Note: "run" is the function method. This line would best be written as

     def obj := seedVat("def test() { return null }")[0]
>
> It runs for a while, but then it hangs (after printing "i: 11800", "i:
> 2300" and "i: 36900" on my last few runs).
>
> While simplifying it, I quite often also got these:
>
> java.lang.RuntimeException: Failed: OldFarRef may only be smashed:  
> <Far
> ref>
> ...
> error: problem: <ViciousCycleException: Caught in a forwarding loop>

I think I've noticed nondeterministic problems like that myself. I  
don't have the time to debug it myself right now, and I'm not a  
threading wizard anyway and this problem is probably some type of race  
condition.

In particular, either of these errors indicates a bogus resolution:  
the first is that a Far ref, since it is settled, cannot be resolved  
to another ref (other than a broken ref); the second is an attempt to  
resolve a promise to itself.

MarkM?

-- 
Kevin Reid                                  <http://switchb.org/kpreid/>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.