On 18/03/2016 14:25, Rob Arthan wrote:

On 18 Mar 2016, at 13:13, David Matthews <[email protected]> wrote:

On 18/03/2016 02:40, Michael Norrish wrote:
Under 5.5.1, and after compiling with polyc, the code below gives an assertion 
violation and core dump:

This was a bug that has been fixed in the current version, 5.6.

Exceptions are raised in the run-time system when it detects errors such as 
invalid parameters.  Assertions are used for errors in the run-time system 
itself.  The idea is to be slightly more helpful than just a segfault with no 
other information.

I tried Michael’s example on 5.6. It didn’t raise an exception, but it also 
didn’t terminate:
it hangs in the call to TextIO.inputLine in the parent process, so I think 
there is something
else wrong (as the call is reading from a pipe whose writer has exited, so I'd 
expect
it to return NONE).

The problem is that the output side of the pipe has not been closed in the parent. That means that both sides of the pipe are open in the parent so the input side doesn't see end-of-stream. Adding "close outfd" in the "SOME pid" branch fixes this.

David
_______________________________________________
polyml mailing list
[email protected]
http://lists.inf.ed.ac.uk/mailman/listinfo/polyml

Reply via email to