octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 2.9.11?


From: Daniel J Sebald
Subject: Re: 2.9.11?
Date: Thu, 19 Apr 2007 01:15:59 -0500
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.3) Gecko/20041020

John W. Eaton wrote:

Does it help to move the fclear before the call to sleep?

No, that didn't seem to change anything. It probably doesn't matter if the fclear() is before or after the sleep().

I think I've narrowed this down. I added a few lines of code to print out whenever an error == EAGAIN occurs. After about the seventh "make check", I got a string of numbers up to 99 at which point the test assumed failure and moved on. (I.e., if it doesn't happen in ten seconds, then fail.)

I looked at the associated processes and found:

 5313 pts/2    00:03:08 octave
 5508 pts/2    00:00:00 sort <defunct>

So, for some reason that sort process is suspending. Not sure why such a simple routine would fail. Some confusion in the piping and in/out streams? Maybe the coordination of fclose(in) and fgets(out) is off. I.e., the input stream needs to finish closing before the output stream is ready, if not maybe sort says "hey"?


| | test_quad.m ............................................ ABNORMAL RETURN FROM | DQAGP

I changed the lower limit of integration for this test so the warning
should be avoided now.

OK, I'll check once compilation is done.

Dan
--- /usr/local/src/octave-junk/octave/src/syscalls.cc   2007-04-18 
22:32:12.000000000 -0500
+++ ./syscalls.cc       2007-04-18 23:40:26.000000000 -0500
@@ -363,6 +363,7 @@
 %!  done = false;
 %!  str = {};
 %!  idx = 0;
+%!  errs = 0;
 %!  do
 %!     if (!isunix())
 %!       errno (0);
@@ -372,12 +373,16 @@
 %!       idx++;
 %!       str{idx} = s;
 %!     elseif (errno () == EAGAIN)
-%!       fclear (out);
 %!       sleep (0.1);
+%!       fclear (out);
+%!       errs++
+%!       if (errs == 100)
+%!         done = true;
+%!       endif
 %!     else
 %!       done = true;
 %!     endif
-%!   until (done)
+%!  until (done == true)
 %!  fclose (out);
 %!  if (isunix())
 %!    assert(str,{"these\n","strings\n","some\n","are\n"})

reply via email to

[Prev in Thread] Current Thread [Next in Thread]