:>
:> The cache appears to be there so select(), when it is getting ready
:> to return, can avoid traversing the list and removing the events that
:> have not occured. This results in a potentially stale si_pid because
:> now the process can exit without doing any further cleanups.
:
:Yes, this is why we must now walk the list when leaving select/poll.
:
:..
:Anyhow, hope that clarifies. Any other ideas or improvements?
:
:Any idea on how we can avoid the list traversal at the end of
:select?
:
:--
:-Alfred Perlstein [alfred@freebsd.org]
Walking the whole list is one solution. Another would be to link
selinfo into a thread-based list (the thread it has been asigned to)
and just walk *that* list on exit in order to avoid having to lock
the entire descriptor list on every select(). I'm still not sure
which of these two approaches you are going for.
I'm not sure how this would tie into KSE. It might not be efficient
to walk the list on thread-exit since KSE creates and drops threads
all the time.
-Matt
Matthew Dillon
<dillon@backplane.com>
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-smp" in the body of the message