Mercurial > octave
diff src/sysdep.cc @ 2630:fdee6fe3e73b
[project @ 1997-01-27 19:08:47 by jwe]
author | jwe |
---|---|
date | Mon, 27 Jan 1997 19:09:52 +0000 |
parents | 8125b6f9c134 |
children | 0774c3f023e8 |
line wrap: on
line diff
--- a/src/sysdep.cc Mon Jan 27 06:11:59 1997 +0000 +++ b/src/sysdep.cc Mon Jan 27 19:09:52 1997 +0000 @@ -521,6 +521,8 @@ { if (xisnan (dval)) warning ("pause: NaN is an invalid delay"); + else if (xisinf (dval)) + kbhit (); else { int delay = NINT (dval); @@ -530,10 +532,68 @@ } } else + kbhit (); + + return retval; +} + +DEFUN (sleep, args, , + "sleep (seconds): suspend program execution") +{ + octave_value_list retval; + + if (args.length () == 1) { - if (kbhit () == EOF) - clean_up_and_exit (0); + double dval = args(0).double_value (); + + if (! error_state) + { + if (xisnan (dval)) + warning ("sleep: NaN is an invalid delay"); + else + { + int delay = NINT (dval); + if (delay > 0) + sleep (delay); + } + } } + else + print_usage ("sleep"); + + return retval; +} + +DEFUN (usleep, args, , + "usleep (microseconds): suspend program execution") +{ + octave_value_list retval; + + if (args.length () == 1) + { + double dval = args(0).double_value (); + + if (! error_state) + { + if (xisnan (dval)) + warning ("usleep: NaN is an invalid delay"); + else + { + int delay = NINT (dval); +#if defined (HAVE_USLEEP) + if (delay > 0) + usleep (delay); +#else + // Kluge alert. + + if (delay > 500000) + sleep (delay / 1000000); +#endif + } + } + } + else + print_usage ("usleep"); return retval; }