Pavlin Radoslavov wrote: > See SelectorList::get_ready_priority() inside libxorp/selector.cc > for example. > It is used to find the best priority of a file descriptor that is > ready. >
What do you think about having the run() method execute the timer(s), then tasks, then the selector. I'd run the selector last since it can sleep. We can get rid of the get_ready_priority() all together that way. If you really wanted to not handle all of the available fds at once (ie, allow low priorities to be skipped), then we could just not process all of them. I can't think of a good reason to do that, however. Then, we have only one call to select(), as well as making sure that each of the run-queues (timers, tasks, selectors) gets some time to run. I am suspicious that the loop I see in ospf has to do with an endless timer loop where the ospf code keeps trying to fire timers but never reads/writes the sockets. I also assume that if it could actually process the sockets, it's timers would be satisfied and quit re-arming themselves. This is idle conjecture at this time, but it would fit the strace log I saw... I think I can code this up and test it out if it's something you'd consider merging. Thanks, Ben -- Ben Greear <[EMAIL PROTECTED]> Candela Technologies Inc http://www.candelatech.com _______________________________________________ Xorp-hackers mailing list [email protected] http://mailman.ICSI.Berkeley.EDU/mailman/listinfo/xorp-hackers
