[erlang-questions] escript cutting output
Bob Gustafson
bobgus@REDACTED
Fri Nov 18 16:03:22 CET 2011
The critical sentence in the post mentioned below is:
"What I suspect is actually happening is that your output is in
the port buffer, which isn't explicitly flushed during halt or
shutdown. With a sufficient timer:sleep(), it will be, but no
other amount of trickery will suffice."
The solution is to explicitly flush the output *in your code* before you
exit.
The io:flush is tied to that buffer write and will return when its job
is complete (the flush). A timer is not tied to anything in the buffer
mechanism and in practice will be either too short a time (not all is
written), or too long (program is inefficient timewise) or erratic as
unforeseen things happen in the output channel.
On Fri, 2011-11-18 at 07:51 +0100, Matthias Lang wrote:
> FWIW, I think this is exactly the same problem as covered in a thread
> earlier this year. Probably the most interesting post in that thread:
>
> http://erlang.org/pipermail/erlang-questions/2011-April/057492.html
>
> My take is that there is no proper solution. Adding a 'sufficient'
> timer:sleep works in practice, but it's less than completely
> satisfying.
>
> Matt
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
More information about the erlang-questions
mailing list