No subject


Sun May 13 13:41:23 UTC 2007


queue_ready_ports()...

 /*
  * Call select() on the pending ports and move any ready ones to the ready
  * queue.  If wait is true, seconds is either -1 (wait forever) or the
  * maximum number of seconds to wait (with ticks any additional ticks).
  * The returned value is a status code.
  */

if there are no ready ports, then the function moves no pending ports
to the queue.  So the initial test

  if ((! wait)
      &&  (pending.first == NULL))
    return (NO_ERRORS);

is too narrow.  We should exit with NO_ERRORS whenever there are no
pending ports, no matter the value 'wait'.  This is the same effective
behavior as a select() call that finds no ready ports.  The
replacement code should be

  if (pending.first == NULL)
    return (NO_ERRORS);

I'm running a custom build with that patch to look for any weird
impact, and it has been looking good so far.

Derek





More information about the pkg-scheme48-maintainers mailing list